为了解决 HTML5Video视频标签自动播放与全屏问题,在网上找了很多相关资料,网上也很多关于此问题解决方法,但几乎都不能解决问题,特别对各大视频网站传回来的html5网页视频自动播放与全屏问题,我是这样解决的:
webview.setWebChromeClient(new WebChromeClient() {            public void onShowCustomView(View view, CustomViewCallback callback) {            Log.e("Media", "onShowCustomView ............ ");                if (myCallback != null) {                      myCallback.onCustomViewHidden();                      myCallback = null ;                      Log.e("Media", "myCallback.onCustomViewHidden()...");                      return;               }                long id = Thread.currentThread().getId();                           ViewGroup parent = (ViewGroup) webview.getParent();               String s = parent.getClass().getName();               Log.v("WidgetChromeClient", "rong debug Ex: " + s);               parent.removeView( webview);               parent.addView(view);               myView = view;               myCallback = callback;                                        }         private View myView = null;         private CustomViewCallback myCallback = null;                         public void onHideCustomView() {                               long id = Thread.currentThread().getId();                Log.v("Media", "onrong debug in hideCustom Ex: " + id);                                              if (myView != null) {                                           if (myCallback != null) {                             myCallback.onCustomViewHidden();                             myCallback = null ;                     }                                          ViewGroup parent = (ViewGroup) myView.getParent();                     parent.removeView( myView);                     parent.addView(webview);                     myView = null;               }         }});


这段代码网上很多地方能找到的,但这是实现全屏播放的前提,一旦触发全屏事件,系统就会调用onShowCustomView方法
实现自动播放功能,就是在网络加载完成后,再延时一些时间如1s后,执行这JAVA脚本
String js="javascript: var v=document.getElementsByTagName('video')[0]; "         +"v.play(); ";webview.loadUrl(js);


这样就可以自动开始播放了
要实现让它自动全屏播放,可以执行这JAVA脚本:
String js="javascript: var v=document.getElementsByTagName('video')[0]; "+"v.webkitEnterFullscreen(); ";webview.loadUrl(js);


注意实现全屏播放要在视频开始播放后,才能调用,否则可能会现异常


如果你想知道视频什么时候开始播放,就是得到视频开始播放事件,方法如下:
先在代码上定义这样接口
private final class DemoJavaScriptInterface{      DemoJavaScriptInterface(){}      public void clickonAndroid(){                     Toast.makeText(getApplicationContext(), "视频开始播放...",Toast.LENGTH_SHORT).show();                        }      public void endonAndroid(){                     Toast.makeText(getApplicationContext(), "视频结束",Toast.LENGTH_SHORT).show();                        }}

webview.addJavascriptInterface(new DemoJavaScriptInterface(), "demo");


然后在在视频开始播放之前,执行这JAVA脚本
String js="javascript: var v=document.getElementsByTagName('video')[0]; " +"v.addEventListener('playing', function() { window.demo.clickonAndroid(); }, true); ";webview.loadUrl(js);






当然了你也可以得到视频播放结束事件执行这JAVA脚本
String js="javascript: var v=document.getElementsByTagName('video')[0]; " +"v.addEventListener('ended', function() { window.demo.endonAndroid(); }, true); ";webview.loadUrl(js);






一般在android平台上,网络视频网站可能不会给你传回Html5 Video网页,这时候就可以设置UserAgent,如可能设置成IPhone或IPad环境,让它返回tml5 Video网页
webview.getSettings().setUserAgentString("Mozilla/5.0 (iPad; CPU OS 5_1 " +                          "like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko ) Version/5.1 " +                          "Mobile/9B176 Safari/7534.48.3");


以上方法就是我在Android 网页视频一些心得,也许能给在你这方面开发提供帮助

更多相关文章

  1. 视频播放拖动进度时间定位不准问题
  2. 可用手势切换播放节目的android视频播放器
  3. 获取手机的视频和图片的缩略图
  4. Android(安卓)音视频深入 十四 FFmpeg与OpenSL ES 播放mp3音乐,能
  5. Android(安卓)执行shell脚本
  6. 简单的音频播放功能MediaPlayer使用中所遇到的坑。
  7. Android:webView加载h5网页视频,播放不了,以及横屏全屏的问题和实现
  8. Android摄像头开发:实时摄像头视频预览帧的编码问题(二)
  9. Android(安卓)ROM的制作与烧录

随机推荐

  1. 部署android sdk demo ---Apidemo
  2. Android Chronometer Format问题
  3. Android简单计时器详解(Timer)
  4. Android 无法解决的几处硬伤
  5. Android 还可以走多久?
  6. 初识App Inventor 2(AI2)
  7. android 设置状态栏颜色
  8. android耗时任务_HandlerThread
  9. android 学习1 eclipse project 的结构。
  10. 简单的Android游戏测试