Android为webview中的视频启动媒体播放器?

时间:2010-02-19 22:13:23

标签: android webview

我有一个webview,如果用户点击一个链接,它会在同一个webview中打开(我用shouldOverrideUrlLoading()来控制)但是如果它是一个视频链接(mp4,3gp)它就不会启动媒体播放器重现视频(就像在普通的浏览器应用程序中一样)。 如何在网页视图中点击视频链接时强制媒体播放器启动?

谢谢!

5 个答案:

答案 0 :(得分:4)

在这种情况下,您需要执行Intent来加载外部视频网址。 这也方便地允许用户返回到先前的视图(活动)而没有任何问题。请参阅下面的代码......

 /*-----------------------------------------------------------------------------------------------
 *  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;
   }
}

答案 1 :(得分:2)

现在可能无关紧要了,但你看到的浏览器不是媒体播放器,而是Android拥有的VideoView。单击视频链接时,会在WebChromeClient中调用onShowCustomView (View view, WebChromeClient.CustomViewCallback callback)。应用程序有义务显示该视图,然后通知WebView不再需要View。

答案 2 :(得分:1)

我的意思是当网址指向视频文件时,我希望媒体播放器能够重现它。 webview正在处理所有其他URL,这没关系,但是当URL指向视频文件时,当我尝试加载该URL时没有任何反应。

答案 3 :(得分:1)

你应该试试这个

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);
            }
        }
    });

答案 4 :(得分:0)

首先,据我所知,Android仅支持rtsp播放。所以点击链接,给出document.location.href =“rtsp://你的视频网址”;