我有一個webview,如果用戶點擊一個鏈接,它打開在同一個webview(我控制與shouldOverrideUrlLoading()),但如果它是一個視頻鏈接(mp4,3gp)它不會啓動媒體播放器再現視頻(就像在普通的瀏覽器應用程序中那樣)。 在webview中點擊視頻鏈接時如何強制媒體播放器啓動?Android推出mediplayer從webview的視頻?
謝謝!
我有一個webview,如果用戶點擊一個鏈接,它打開在同一個webview(我控制與shouldOverrideUrlLoading()),但如果它是一個視頻鏈接(mp4,3gp)它不會啓動媒體播放器再現視頻(就像在普通的瀏覽器應用程序中那樣)。 在webview中點擊視頻鏈接時如何強制媒體播放器啓動?Android推出mediplayer從webview的視頻?
謝謝!
我的意思是說,當url指向一個視頻文件時,我想讓mediaplayer重現它。每個其他的URL都被webview處理,這是可以的,但是當URL指向一個視頻文件時,當我嘗試加載該url時沒有任何反應。
首先,據我所知,Android只支持rtsp播放。所以點擊鏈接,給document.location.href =「rtsp://你的視頻網址」;
在這種情況下,您將需要執行一個意圖加載外部視頻網址。 這也方便用戶返回到前一個視圖(活動)沒有任何問題。請參見下面的代碼....
/*-----------------------------------------------------------------------------------------------
* WebViewClientHandler() allows for overriding default phone web browser so we can load in gui
*----------------------------------------------------------------------------------------------*/
private class WebViewClientHandler extends WebViewClient {
public boolean shouldOverrideUrlLoading(WebView view, String url) {
Uri uri = Uri.parse("http://YOUTSTREAM.FLV");
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(intent);
return true;
}
}
現在可能是無關緊要的,但你看到的是在瀏覽器不是媒體播放器,而是一個Android擁有VideoView。點擊視頻鏈接時,將調用WebChromeClient中的onShowCustomView (View view, WebChromeClient.CustomViewCallback callback)
。應用程序有義務顯示該視圖,然後通知WebView不再需要視圖。
你應該試試這個
WebView webView = (WebView) findViewById(R.id.embeddedWebView);
webView.setDownloadListener(new DownloadListener()
{
public void onDownloadStart(String url, String userAgent, String contentDisposition, String mimeType, long size)
{
Intent viewIntent = new Intent(Intent.ACTION_VIEW);
viewIntent.setDataAndType(Uri.parse(url), mimeType);
try
{
startActivity(viewIntent);
}
catch (ActivityNotFoundException ex)
{
Log.w("YourLogTag", "Couldn't find activity to view mimetype: " + mimeType);
}
}
});
這段代碼去哪裏? – talentedmrjones 2012-12-27 19:39:42
你能否澄清你所說的「如果它是一個視頻鏈接(MP4,3GP等)沒有啓動媒體播放器重放視頻」是什麼意思?你的意思是說你沒有用'shouldOverrideUrlLoading()'調用這些URL嗎? – CommonsWare 2010-02-19 23:34:01