我有一個應用程序,它在WebView中顯示帶有視頻元素的HTML5頁面。我花了一段時間才弄清楚如何讓視頻工作,但最終我成功地在三星Galaxy Tab(Android 3.1)上播放嵌入在WebView中的視頻。我用下面的代碼,視頻標籤:在Android WebView中攔截HTML5視頻源請求
<video controls poster="img/poster.jpg" height="240" width="360">
<source src="video/BigBuck.m4v">
<source src="video/BigBuck.theora.ogv" type="video/ogg">
<source src="video/BigBuck.webm" type="video/webm">
HTML5 video not supported.
</video>
視頻元素有多個來源,現在我想之前視頻開始播放捕捉到選定的視頻源(和格式)。當我點擊播放按鈕時,我看到視頻文件到達存儲視頻文件的網絡服務器的HTTP請求,但是我沒有成功在應用程序端攔截此請求。
我看了幾個方法,看看是否通過視頻文件的請求,但我沒有看到它通過任何一個。
- 在
shouldOverrideUrlLoading(WebView view, String url)
我的WebViewClient
中只有最初的HTML5頁面請求通過。 shouldInterceptRequest (WebView view, String url)
在我的WebViewClient
我看到只傳遞HTML5頁面的初始請求和視頻海報圖像的請求,但不是視頻文件。onShowCustomView(View view, CustomViewCallback callback)
我的WebChromeClient
僅在單擊HTML5頁面上的全屏控制按鈕時纔會被調用,當視頻已經播放時,但不是當我單擊播放按鈕時。 (究竟是該方法的目的是什麼?)
沒有任何人有另一種方法的建議,我可以捕捉視頻文件的請求或任何人都可以解釋我到底發生了什麼,當我點擊播放按鈕視頻元素?
您可以發佈您用於視頻標記的代碼嗎?我最近處理了這個問題,'shouldOverrideUrlLoading(WebView視圖,String url)'爲我工作(儘管在薑餅中)。 –