首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >安卓WebView HTML5中不播放音频和视频

安卓WebView HTML5中不播放音频和视频
EN

Stack Overflow用户
提问于 2017-01-30 06:21:33
回答 1查看 2.5K关注 0票数 6

当这个网页打开时,我无法播放安卓WebView中的音频和视频。这两个链接都支持HTML5。WebView无法正常播放音频和视频。

以下示例的网页链接:

音频- https://kulturpunkt.org/owner/49/group/175/record/3550

视频- https://kulturpunkt.org/owner/49/group/175/record/3285

已尝试的解决办法:

1.之前,音频和视频链接是不安全的(https),我们现在将其更改为安全链接(https)。这是基于以下错误完成的

音频错误:屏幕截图

代码语言:javascript
运行
复制
I/chromium: [INFO:CONSOLE(13)] "Mixed Content: The page at 'https://kulturpunkt.org/owner/49/group/175/record/3550' was loaded over HTTPS, but requested an insecure video 'http://mm.dimu.org/multimedia/032wX1jg2tKY.mp3?mmid=032wX1jg2tKY&a=none'. This request has been blocked; the content must be served over HTTPS.", source: https://kulturpunkt.org/assets/kp.footer.2.0.19.js (13)
I/chromium: [INFO:CONSOLE(0)] "Uncaught (in promise) NotSupportedError: Failed to load because no supported source was found.", source: https://kulturpunkt.org/owner/49/group/175/record/3550 (0)

视频错误:屏幕截图

代码语言:javascript
运行
复制
I/chromium: [INFO:CONSOLE(13)] "Mixed Content: The page at 'https://kulturpunkt.org/owner/49/group/175/record/3285' was loaded over HTTPS, but requested an insecure video 'http://mm.dimu.org/multimedia/012wWXC2dbyh.mp4?mmid=012wWXC2dbyh&a=none'. This content should also be served over HTTPS.", source: https://kulturpunkt.org/assets/kp.footer.2.0.19.js 
I/chromium: [INFO:CONSOLE(0)] "Uncaught (in promise) NotSupportedError: Failed to load because no supported source was found.", source: https://kulturpunkt.org/owner/49/group/175/record/3550 (0)

2.第二,我将音频和视频的大小缩小为7.33MB25.6MB,因为我认为大小可能不允许媒体正确加载和在WebView中播放。 3.最后,我们尝试将音频和视频的编解码器更改为支持的格式,这是由安卓WebView提供的。 4.安卓系统WebView应用程序也用OSAndroid6.0 (M)从设备中的Play Store中更新。App Version - 55.0.2883.91 (09 Dec 2016)

我试着用不同的操作系统在所有不同的设备上进行测试,但是安卓WebView的行为还是一样的。

我不明白这里到底有什么问题。我怎样才能解决这个问题?

我不能像在JavascriptInterface中解释的那样使用这个答案,尽管我可以控制服务器的更改和应用程序的更改。我想用WebView的默认行为来实现它。

下面是我的WebView的代码:

代码语言:javascript
运行
复制
inAppWebView = (WebView)findViewById(R.id.in_app_web_view);
inAppWebView.setWebChromeClient(new MyWebChromeClient());
inAppWebView.setWebViewClient(new WebViewClient() {

        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            inAppWebView.loadUrl(webURL);
            return true;
        }

        public void onLoadResource(WebView view, String url) {
            dismissProgressDialog();
        }

        @Override
        public void onPageStarted(WebView view, String url, Bitmap favicon) {
            loadProgressDialog(InAppWebViewActivity.this);
            super.onPageStarted(view, url, favicon);
        }

        @Override
        public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) {
            dismissProgressDialog();
            super.onReceivedError(view, request, error);
        }

        public void onPageFinished(WebView view, String url) {
            dismissProgressDialog();
            super.onPageFinished(view, url);
        }
    });
inAppWebView.getSettings().setDomStorageEnabled(true);
inAppWebView.getSettings().setJavaScriptEnabled(true);
inAppWebView.getSettings().setPluginState(WebSettings.PluginState.ON);
inAppWebView.loadUrl(webURL);

任何建议或参考都是有帮助的。

EN

回答 1

Stack Overflow用户

发布于 2020-07-01 19:40:34

将此添加到您的报表文件中。

代码语言:javascript
运行
复制
android:usesCleartextTraffic="true"

在你的webview创建之后

代码语言:javascript
运行
复制
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
    webView.getSettings().setMixedContentMode( 
        WebSettings.MIXED_CONTENT_ALWAYS_ALLOW );
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41930024

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档