从Webview启动Android视频播放器?

4
我有一个webview,如果用户点击链接,它会在相同的webview中打开(我通过shouldOverrideUrlLoading()控制),但是如果它是视频链接(mp4,3gp),它不会启动媒体播放器以播放视频(正常浏览器应用程序会这样做)。 如何强制当在webview内点击视频链接时启动媒体播放器? 谢谢!

你能否澄清一下你所说的“如果是视频链接(mp4,3gp),它不会启动媒体播放器来播放视频”是什么意思?你的意思是这样的URL不会调用shouldOverrideUrlLoading()吗? - CommonsWare
5个回答

4

在这种情况下,您需要执行一个Intent来加载外部视频URL。这也方便用户返回到之前的视图(活动)而不会出现任何问题。请参见以下代码...

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

3

现在可能已经不相关了,但是你在浏览器中看到的并不是媒体播放器,而是一个由Android拥有的VideoView。当点击视频链接时,会调用WebChromeClient中的onShowCustomView(View view,WebChromeClient.CustomViewCallback callback)方法。应用程序的责任是显示该视图,然后通知WebView不再需要该视图。


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

1

我的意思是当URL指向视频文件时,我希望媒体播放器能够播放它。其他所有的URL都由Webview处理,这很好,但当URL指向视频文件时,加载该URL时什么也不会发生。


0
首先,据我所知,Android仅支持rtsp播放。因此,在链接上单击时,请使用document.location.href="rtsp://your video url";

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接