Android为来自webview的视频启动mediplayer?

Posted

技术标签:

【中文标题】Android为来自webview的视频启动mediplayer?【英文标题】:Android launch mediplayer for videos from a webview? 【发布时间】:2011-01-18 23:46:17 【问题描述】:

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

谢谢!

【问题讨论】:

您能否澄清“如果它是视频链接(mp4、3gp)它不会启动媒体播放器来重现视频”的意思?你的意思是这样的 URL 不会用shouldOverrideUrlLoading() 调用你吗? 【参考方案1】:

在这种情况下,您需要执行 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;
   

【讨论】:

【参考方案2】:

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

【讨论】:

【参考方案3】:

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

【讨论】:

【参考方案4】:

你应该试试这个

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

【讨论】:

【参考方案5】:

首先,据我所知,Android 只支持 rtsp 播放。所以点击链接,给出 document.location.href="rtsp://your video url";

【讨论】:

以上是关于Android为来自webview的视频启动mediplayer?的主要内容,如果未能解决你的问题,请参考以下文章

YouTube 视频未在 WebView 中播放 - Android

无法在 Android 4.2.2 上运行的 Webview 上自动启动 html5 视频

Android Webview 应用程序不会让视频播放器全屏显示

java 在android webview中全屏播放HTML5视频。注意:我没有写这个,它来自http://stackoverflow.com/questions/

视频在 Android 的 Webview 中只播放一次

在 mediaplayer 中播放的 Android webview 视频