Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> android webView 無法播放視頻,無法暫停,繼續播放視頻問題,無法根據浏覽器居中顯示內容問題

android webView 無法播放視頻,無法暫停,繼續播放視頻問題,無法根據浏覽器居中顯示內容問題

編輯:關於Android編程

此次遇到一個問題就是webView無法播放視頻,查了下谷歌發現可以設置

setting.setPluginsEnabled(true);
這個從而播放視頻,但是最新官方SDK說這個方法要放棄了,推薦使用

setting.setPluginState(PluginState.ON);

目前看來這兩種方法都可以,但是webview的頁面都finish了居然還能聽到視頻播放的聲音,於是有查了下發現webview的

onResume方法可以繼續播放,

onPause可以暫停播放,
但是這兩個方法都是在Added in API level 11添加的,所以需要用反射來完成。
停止播放:在頁面的onPause方法中使用:

webView.getClass().getMethod("onPause").invoke(webView,(Object[])null);

繼續播放:在頁面的onResume方法中使用:

webView.getClass().getMethod("onResume").invoke(webView,(Object[])null);

這樣就可以控制視頻的暫停和繼續播放了。

另外說一點:

webView.resumeTimers()

webView.pauseTimers();

這兩個方法有延遲,而且第二次再加載webview以後會出現上次播放的視頻還會繼續在播放,但是只能聽到聲音,所以個人感覺不靠譜,系統的浏覽器估計是用了這個方法,按返回件關閉浏覽器後都還能聽到聲音。


無法根據浏覽器居中顯示內容這個問題只要設置下面兩個熟悉即可:

setting.setLoadWithOverviewMode(true);

setting.setUseWideViewPort(true);


繼續研究:

同樣的代碼,經過在Android4.0+的設備上測試後發現,還是不能播放視頻,於是繼續添加了如下解決方法:

1.在webView的Activity配置裡面加上:

android:hardwareAccelerated="true"


2.必須添加這句代碼,沒整明白為什麼,但是加了這個就能播放

webView.setWebChromeClient(new WebChromeClient());

這兩步就可以播放了,有人說在application的配置裡面也要加上:android:hardwareAccelerated="true",開始的時候我也加了,但是後來發現去掉這個也一樣可以播放flash

但是現在的麻煩是視頻不能全屏播放,只要點擊了全屏按鈕後,再次點擊播放和暫停按鈕以後,視頻不會有任何反應,無法繼續播放了。

網上查了下相關解決方法:
http://www.techfreestyle.com/fixed-android-4-0-full-screen-flash-problem-in-webview 這種方法測試過了 不能解決問題。

https://github.com/android/platform_packages_apps_browser/blob/master/src/com/android/browser/BaseUi.java 這個貌似源碼,由於代碼較多,所以還沒研究。

大牛路過時,說說你是怎麼解決全屏這一問題的吧,thanks。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved