我有一个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