Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了android – 无法在Web View中播放视频大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

我无法在Android网页视图上播放视频.

我已将html和视频文件保存在我的assets文件夹中.

每当我加载html文件时,它都会给我错误

05-01 12:31:16.092: E/MediaresourceGetter(17241): Unable to read file: file:///android_asset/MediaBook2%20(2)/2B952499A0E681.mp4

每当我按下播放按钮时,我都会收到以下错误

05-01 12:31:23.680: E/chromium(17241): [ERROR:webmediaplayer_android.cc(328)] Not implemented reached in virtual void content::WebMediaPlayerAndroid::setRate(doublE)
05-01 12:31:23.710: E/MediaPlayer(17241): error (1,-2147483648)
05-01 12:31:23.710: E/MediaPlayer(17241): Error (1,-2147483648)

能够加载任何远程视频并运行,但问题是我从资源文件夹加载本地视频
用于加载文件和设置Web视图的代码

@Override
protected void onCreate(Bundle savedInstanceStatE)
{
    super.onCreate(savedInstanceStatE);

    // Remove title bar
    requestWindowFeature(Window.FEATURE_NO_titlE);

    setContentView(R.layout.activity_webview);
    mContentView = (LinearLayout) findViewById(R.id.linearlayout);
    // Keep the webview setup ready
    setupWebView();


}

public void setupWebView()
{
    webView = (WebView) findViewById(R.id.webView);
    // progressBar = (ProgressBar) findViewById(R.id.progressBarForWebView);

    WebSetTings webViewSetTings = webView.getSetTings();
    webViewSetTings.setJavaScriptEnabled(true);
    webViewSetTings.setJavaScriptCanOpenWindowsAutomatically(true);
    webViewSetTings.setPluginState(PluginState.oN);
    webView.getSetTings().setAllowFileAccess(true);
    webView.setSoundEffectsEnabled(true);
    webView.setWebViewClient(new SLCWebViewClient());
    webView.setWebChromeClient(new WebChromeClient());
    loadContentsInWebView();

}
public void loadContentsInWebView()
    {

        String localURL = "file:///android_asset/MediaBook2 (2)/SampleForVideo.html";
        logger.debug("WebView URL: {}",localURL);
        try {
            webView.loadUrl(localURL);
        }
        catch (Exception E) {
            e.printStackTrace();
            logger.error("Error while loading url",E);
        }
    }
    private class SLCWebViewClient extends WebViewClient
{
    @Override
    public Boolean shouldOverrideUrlLoading(WebView view,String url)
    {
        view.setWebChromeClient(new WebChromeClient()
        {

            private View mCustomView;

            @Override
            public void onShowCustomView(View view,WebChromeClient.CustomViewCallBACk callBACk)
            {
                // if a view already exists then immediately terminate the new one
                if (mCustomView != null) {
                    callBACk.onCustomViewHidden();
                    return;
                }

                // Add the custom view to its container.
                mCustomViewContainer.addView(view,COVER_SCREEN_GRAVITY_CENTER);
                mCustomView = view;
                mCustomViewCallBACk = callBACk;

                // hide main browser view
                mContentView.setVisibility(View.GONE);

                // Finally show the custom view container.
                mCustomViewContainer.setVisibility(View.VISIBLE);
                mCustomViewContainer.bringToFront();
            }

        });

        webView.loadUrl(url);

        return true;
    }

Sample for Video.HTML代码

    title>TesTing for Videotitle>
source src="2B952499A0E681.mp4">

布局文件代码

@H_489_46@

干杯,
Saurav

最佳答案
file:/// android_asset协议是特定于WebView的东西.也就是说:其他系统组件无法读取这些URl.

@H_548_1@mediaresourceGetter不使用WebView的网络堆栈,因此不“理解”file:/// android_asset协议.

在你提到的另一个问题中,你使用的是本地http服务器 – 尝试从中提供.mp4.

大佬总结

以上是大佬教程为你收集整理的android – 无法在Web View中播放视频全部内容,希望文章能够帮你解决android – 无法在Web View中播放视频所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。