如何在 Android 上的 webView 中显示视频

Posted

技术标签:

【中文标题】如何在 Android 上的 webView 中显示视频【英文标题】:How to show video in webView on Android 【发布时间】:2017-09-02 19:12:21 【问题描述】:

我想在我的应用程序中显示文本、图像和视频。对于这个问题,我使用webView,因为我应该在文本之间显示图像和视频。对于设置webView,我编写了以下代码:

    WebSettings settings = post_content_web.getSettings();
    post_content_web.setWebChromeClient(new WebChromeClient());
    settings.setPluginState(WebSettings.PluginState.ON);
    settings.setjavascriptEnabled(true);

    settings.setDefaultTextEncodingName("utf-8");

    String myCustomStyleString = "<style type=\"text/css\">@font-face font-family: MyFont;src: " +
            "url(\"file:///android_asset/fonts/iran_sans_mobile.ttf\")body,* font-family: MyFont; font-size: " +
            "medium;text-align: justify;</style>";

    post_content_web.loadDataWithBaseURL("", myCustomStyleString + "<div style=\"direction:rtl\">"
            + title + "\n\n" + content + "</div>", "text/html", "utf-8", null); 

我使用视频中的嵌入代码,例如:

<div id="14915658601813975"><script type="text/JavaScript" src="https://www.aparat.com/embed/hdvzs?data[rnddiv]=14915658601813975&data[responsive]=yes"></script></div>

我的应用程序显示视频帧(边框)和视频缩略图,但是当我点击视频播放时,不显示任何视频,只显示黑屏!!!

我该如何解决?

【问题讨论】:

How to play video URL inside android webview的可能重复 【参考方案1】:

为了支持 div 标签中可用的视频(&lt;div&gt;), 您必须为 WebView 设置添加一些额外的属性。

webView.getSettings().setDomStorageEnabled(true);
webView.getSettings().setAppCacheEnabled(true);
webView.getSettings().setAppCachePath(getApplicationContext().getFilesDir().getAbsolutePath() + "/cache");
webView.getSettings().setDatabaseEnabled(true);
webView.getSettings().setDatabasePath(getApplicationContext().getFilesDir().getAbsolutePath() + "/databases");

我遇到了同样的问题,添加 this sn-p 解决了黑屏

希望这对您也有帮助!

【讨论】:

如果有帮助,请对此答案投票。编码快乐!

以上是关于如何在 Android 上的 webView 中显示视频的主要内容,如果未能解决你的问题,请参考以下文章

如何在nativescript vue中处理webview上的android后退按钮

如何从不在 Android 的 API 26 上的 WebView 获取 WebviewClient 实例?

如何在 Android 上的 WebView 中读取 Blob 中的数据?

取消在 Android 上的 WebView 中加载

如何在 Android/iOS 上的 webview/移动浏览器中最好地预缓存视频?

如何将html字符串传递给android上的webview