html 安卓 视频加载错误,javascript – html5视频无法在Android webview中播放,但适用于(移动)Chrome...

我有一个(客户)网站使用js

brightcove player来渲染html5视频.

(阅读:我无法编辑网站本身)

在移动Chrome中,视频有效,一切都很好.但是在我的Android应用中,使用呈现完全相同页面的WebView无法播放视频.

我已阅读了许多类似的SO问题,并确保完成以下操作:

>关闭Web视图插件(关闭Flash),以确保使用html5视频而不是Flash版本.

> javascript显然已启用

> Web视图上安装了webchromeclient.

>覆盖webchromeclient中的onShowCustomView(不幸的是,它永远不会被调用)

>为活动启用硬件加速

有些帖子建议手动调用视频的play()方法,这不是一个好主意,但是,无论如何都不可能,因为brightcove播放器的视频标签在iframe内并且无法获取它通过JavaScript.

到现在为止,我的想法已经不多了,问题可能是什么或在哪里.任何建议都非常感谢.

LogCat中唯一相关的日志消息是:

10-25 14:01:01.503:D / VideoLayerManager(1307):为VideoLayer重新启动GLResource

我的WEBVIEW设置

课程内容可以从这里下载goo.gl/GVtgD0.

webView = (WebView)findViewById(R.id.webView);

webView.getSettings().setJavaScriptEnabled(true);

webView.getSettings().setAllowFileAccess(true);

webView.setSoundEffectsEnabled(true);

webView.setWebChromeClient(new WebChromeClient());

webView.loadUrl("file:///emulated/0/GA_nHanceK12/temp/class1-sub1-top2/index.html"));

从我这边来的日志

07-16 14:44:11.787: E/MediaPlayer-JNI(27539): [FXN][ASD]getVideoSurfaceTexture: null surface texture

07-16 14:44:11.787: E/MediaPlayer(27539): error (1, -2147483648)

07-16 14:44:11.787: D/MediaPlayer_Java(27539): [FXN.ASD] setDataSource :: uri = file:storage/emulated/0/GA_nHanceK12/temp/class1-sub1-top2/_cp_n_m_

07-16 14:44:11.797: E/MediaPlayer-JNI(27539): [FXN][ASD]getVideoSurfaceTexture: null surface texture

07-16 14:44:11.797: E/MediaPlayer(27539): error (1, -2147483648)

07-16 14:44:11.797: D/MediaPlayer_Java(27539): [FXN.ASD] setDataSource :: uri = file:storage/emulated/0/GA_nHanceK12/temp/class1-sub1-top2/_cp_n_m_

07-16 14:44:11.807: E/MediaPlayer-JNI(27539): [FXN][ASD]getVideoSurfaceTexture: null surface texture

07-16 14:44:11.807: E/MediaPlayer(27539): error (1, -2147483648)

07-16 14:44:11.817: D/MediaPlayer_Java(27539): [FXN.ASD] setDataSource :: uri = file:storage/emulated/0/GA_nHanceK12/temp/class1-sub1-top2/_cp_n_m_

07-16 14:44:11.817: E/MediaPlayer-JNI(27539): [FXN][ASD]getVideoSurfaceTexture: null surface texture

07-16 14:44:11.817: E/MediaPlayer(27539): error (1, -2147483648)

07-16 14:44:11.817: D/MediaPlayer_Java(27539): [FXN.ASD] setDataSource :: uri = file:storage/emulated/0/GA_nHanceK12/temp/class1-sub1-top2/_cp_n_m_

07-16 14:44:11.827: E/MediaPlayer-JNI(27539): [FXN][ASD]getVideoSurfaceTexture: null surface texture

07-16 14:44:11.827: E/MediaPlayer(27539): error (1, -2147483648)

07-16 14:44:11.837: D/MediaPlayer_Java(27539): [FXN.ASD] setDataSource :: uri = file:storage/emulated/0/GA_nHanceK12/temp/class1-sub1-top2/_cp_n_m_

07-16 14:44:11.837: E/MediaPlayer-JNI(27539): [FXN][ASD]getVideoSurfaceTexture: null surface texture

07-16 14:44:11.837: D/MediaPlayer_Java(27539): [FXN.ASD] setDataSource :: uri = file:storage/emulated/0/GA_nHanceK12/temp/class1-sub1-top2/_cp_n_m_

07-16 14:44:11.847: E/MediaPlayer(27539): error (1, -2147483648)

07-16 14:44:11.847: E/MediaPlayer-JNI(27539): [FXN][ASD]getVideoSurfaceTexture: null surface texture

07-16 14:44:11.847: D/MediaPlayer_Java(27539): [FXN.ASD] setDataSource :: uri = file:storage/emulated/0/GA_nHanceK12/temp/class1-sub1-top2/_cp_n_m_

07-16 14:44:11.857: E/MediaPlayer(27539): error (1, -2147483648)

07-16 14:44:11.857: E/MediaPlayer-JNI(27539): [FXN][ASD]getVideoSurfaceTexture: null surface texture

07-16 14:44:11.857: E/MediaPlayer(27539): error (1, -2147483648)

07-16 14:44:11.857: D/MediaPlayer_Java(27539): [FXN.ASD] setDataSource :: uri = file:storage/emulated/0/GA_nHanceK12/temp/class1-sub1-top2/_cp_n_m_

07-16 14:44:11.857: E/MediaPlayer-JNI(27539): [FXN][ASD]getVideoSurfaceTexture: null surface texture

07-16 14:44:11.867: E/MediaPlayer(27539): error (1, -2147483648)

07-16 14:44:11.867: D/MediaPlayer_Java(27539): [FXN.ASD] setDataSource :: uri = file:storage/emulated/0/GA_nHanceK12/temp/class1-sub1-top2/_cp_n_m_

07-16 14:44:11.867: E/MediaPlayer-JNI(27539): [FXN][ASD]getVideoSurfaceTexture: null surface texture

07-16 14:44:11.867: E/MediaPlayer(27539): error (1, -2147483648)

07-16 14:44:11.917: E/MediaPlayer_Java(27539): Error (1,-2147483648)

07-16 14:44:11.917: E/MediaPlayer_Java(27539): Error (1,-2147483648)

07-16 14:44:11.917: E/MediaPlayer_Java(27539): Error (1,-2147483648)

07-16 14:44:11.917: E/MediaPlayer_Java(27539): Error (1,-2147483648)

07-16 14:44:11.927: E/MediaPlayer_Java(27539): Error (1,-2147483648)

07-16 14:44:11.927: E/MediaPlayer_Java(27539): Error (1,-2147483648)

07-16 14:44:11.927: E/MediaPlayer_Java(27539): Error (1,-2147483648)

07-16 14:44:11.927: E/MediaPlayer_Java(27539): Error (1,-2147483648)

07-16 14:44:11.927: E/MediaPlayer_Java(27539): Error (1,-2147483648)

07-16 14:44:11.937: E/MediaPlayer_Java(27539): Error (1,-2147483648)

07-16 14:44:12.488: D/VideoLayerManager(27539): Reinit GLResource for VideoLayer

最佳答案

This answer可能会回答您的问题.

我尝试过API 16(4.1 JB),但这个sample Brightcove video只在全屏播放时播放.

您可以在全屏模式下强制启动视频,并在用户要求或视频播放完毕时将其退出.

我相信这是由WebView类本身引起的,因为4.1 JellyBean是从Android浏览器到谷歌Chrome的过渡.虽然较新的4.1版本的默认浏览器变为Chrome,但WebView仍然使用旧引擎,因此无法正确呈现视频.

另一个解决方案是重定向用户并强迫他使用他的浏览器(如果你很幸运,它是chrome并且将显示视频).

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值