- 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 网页视频一些心得,也许能给在你这方面开发提供帮助