- 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 網頁視頻一些心得,也許能給在你這方面開發提供幫助