androidios webview 离线缓存H5离线缓存 无网络状态下声音怎么播放?

& 文章正文
Android Webview中解决H5的音视频不能自动播放的问题
作者: 发表日期: 复制链接 收藏
Android Webview中解决H5的音视频不能自动播放的问题
这是网上一个常见方案:
在开发webview的时候,当加载有声音的网页的时候,声音不会自动播放,但在QQ或者系统浏览器可以自动播放,查找资料还需要最后通过在webview中调用js方法。这个方法需要在webview的setWebViewClient方法之后在onPageFinished回调中执行调用。
webView.setWebViewClient(new WebViewClient() {
& & & & & & & & & & & & & & & & @Override
& & & & & & & & & & & & & & & & public void onPageFinished(WebView view, String url) {
& & & & & & & & & & & & & & & & & & super.onPageFinished(view, url);
& & & & & & & & & & & & & & & & & & spWebView.loadUrl(&javascript:(function() { & +
& & & & & & & & & & & & & & & & & & & & & & &var videos = document.getElementsByTagName('audio');& +
& & & & & & & & & & & & & & & & & & & & & & & for(var i=0;i&videos.i++){videos.play();}})()&);
& & & & & & & & & & & & & & & & }
& & & & & & & & & & & & & & & & @Override
& & & & & & & & & & & & & & & & public void onPageStarted(WebView view, String url, Bitmap favicon) {
& & & & & & & & & & & & & & & & & & super.onPageStarted(view, url, favicon);
& & & & & & & & & & & & & & & & }
& & & & & & & & & & & & & & });
更专业的作法:
& & & & & & For Android & 4.2.2 it seems that the last DOM event you get is 'loadeddata'. You likely won't get &canplaythrough&. To autoplay, you then use javascript var myvideo = document.getElementsByTagName('video')[0]; myvideo.play();
& & & & & &
For Android 4.2.2+ all you need in your native code is WebView.getSettings().setMediaPlaybackRequiresUserGesture(false);
的个人主页看更多内容
(zhouzhe258)
(水城一滴)
(水城一滴)
(水城一滴)
(水城一滴)
(lc365net)
(lc365net)
(lc365net)
(lc365net)
(lc365net)
(lc365net)
博客服务: &
江北水城博客基地
聊城门户网络科技有限公司android webview打开一个网页视频,有声音没有图像是怎么回事_百度知道
android webview打开一个网页视频,有声音没有图像是怎么回事
getWindow().addFlags(WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);
mWebView = (WebView) findViewById(R.id.webView1);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.getSettings().setJavaScript...
我有更好的答案
manifest文件里,application节点,打开硬件加速试试&android:hardwareAccelerated=&true&&,希望可以帮到你
加了 &application
android:hardwareAccelerated=&true&&
那你有没有把webView的layerType设置成hardware呢
android:id=&@+id/webView1&
android:layout_width=&match_parent&
android:layout_height=&match_parent&
android:layerType=&hardware&/&还是没用
那换个视频源试下,播放下其他的视频,看是否正常
采纳率:66%
来自团队:
为您推荐:
其他类似问题
android的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。Android Webview中解决H5的音视频不能自动播放、只有声音没有图像的问题
开发webview的时候,当加载有声音的H5的时候,声音不会自动播放,必须手动触摸一下屏幕,声音才会播放出来,虽然在H5文件中设置了autoplay属性,也调用了play方法,依然不能自动播放,最后通过在webview中调用js方法来解决。
代码如下:
view.loadUrl("javascript:(function() { " +
"var videos = document.getElementsByTagName('video');" +
" for(var i=0;i&videos.i++){videos[i].play();}})()");
注意这个方法需要在webview的onPageFinished回调中执行调用。
使用自带的Webview加载带有视频的网页,出现视频只有声音没有图像的问题,究其原因,需要对webview添加硬件加速,只要对webview添加即可,代码如下
mWebView.setLayerType(View.LAYER_TYPE_HARDWARE, null);
不对webview所在的activity添加也是可以的。
Android使用WebView浏览有声音或者视频的网页,关闭WebView之后,声音或者视频不停止的解决办法
解决办法如下:
protected void onPause ()
m_WebView.reload ();
super.onPause ();
m_WebView为Activity中的WebView控件。
没有更多推荐了,
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!16:22 提问
webview播放HML5网页视频有声音没图像
android 4.4.2用webview打开一个网页视频,网页是HTML5 视频是MP4格式,现在播放有声音没图像,代码如下
mWebView = (WebView) findViewById(R.id.webView1);
getWindow().setFlags( WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED, WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
mWebView.setWebChromeClient(new WebChromeClient());
mWebView.getSettings().setPluginState(WebSettings.PluginState.ON);
mWebView.getSettings().setAllowFileAccess(true);
mWebView.setScrollBarStyle(0);
Log.e("test", mWebView.isHardwareAccelerated()+"");
mWebView.setFocusable(false);
mWebView.loadUrl(");
mWebView.setWebViewClient(new WebViewClient() {
public void onPageFinished(WebView view, String url) {
mWebView.loadUrl("javascript:(function() { " +
"var videos = document.getElementsByTagName('video'); " +
"for(var i=0;i&videos.i++){videos[i].play();" +
这个问题出在电视上面,华为荣耀六手机测试没问题,电视上面整个屏幕都是黑色,跪求大神帮帮忙,小弟给跪了
按赞数排序
我也有同样的问题,请问你解决了吗?
我也遇到这样的问题
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐安卓Webview缓存网页数据(无网络正常显示) - 推酷
安卓Webview缓存网页数据(无网络正常显示)
一、需求经历
最近的项目是一个原生 +webview 显示的 APP,一开始的时候,网站那边要求我们安卓给他做缓存。后来由于某些因素,这个需求取消了。
由于需求取消,我也没想过怎么去做这个缓存,由于使用 webview 比较少,最这个不是很熟悉。
二、使用场景结合
后来碰巧又和同事 A 聊到了这个话题,原生 APP 和 webview 加载有什么不一样,同事 A 说一打开 APP 的时候,webview 需要去加载,若没有网络的话,就没东西显示,影响用户体验,而原生 APP,就算没有网络,也可以显示内容。
说到这里,我认真思考一番,我们做个缓存,不就得了?由于之前接触过 HTML5 的开发,印象中是有这个一个机制去把这个事情实现。
对于 H5 的应用有一个
应用程序缓存(Application Cache)
这个实现起来非常轻松。
只要在网站的目录下配置一个扩展名为:
的 Manifest 文件,注明哪些文件需缓存,哪些文件必须经过网络去加载,然后在
标签中加入
&html manifest=&demo.appcache&&
即可完成缓存的实现。
这个时候,我们用 webview 去加载这个网站,断网,再打开 APP,网页一样可以显示出来,里面的 js 功能还可以用的哦(这是废话啦)。
已发表评论数()
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见
正文不准确
标题不准确
排版有问题
主题不准确
没有分页内容
图片无法显示
视频无法显示
与原文不一致}

我要回帖

更多关于 webview离线缓存 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信