确定URL是否是Android应用中mp4视频的链接?

时间:2012-01-24 22:57:22

标签: android

我有一个使用WebView控件显示网页的应用。我无法在WebView控件中播放MP4视频,因此我必须采用不同的路线。

我重写了shouldOverrideUrlLoading方法WebViewClient,以便我可以确定该URL是否是mp4视频链接。如果是,我想将链接发送到android内部视频播放器,否则,让它继续。

我可以解析字符串,但我想使用Uri类。我是URL的新手,并且不了解URL的格式(组件)。如何确定以下URL:

http://www.mobilityinitiative-test.com/images/stories/videos/Introduction.mp4
and
http://www.mobilityinitiative-test.com/images/stories/videos/Synergy.mp4

实际上是mp4视频的链接?

一旦确定,启动内部视频播放器的最佳方式是什么?我见过几种方式。

2 个答案:

答案 0 :(得分:0)

您可能正在打开正在打开的文档的mimetype(视频/ mp4)。

我发布了一个示例代码,但这里已经提供了多个示例:http://www.rgagnon.com/javadetails/java-0487.html

我建议从基于java.net.URL的示例开始(第二个示例)。

答案 1 :(得分:0)

覆盖自定义shouldOverrideUrlLoading()中的WebChromeClient()功能。

@Override
        public boolean shouldOverrideUrlLoading(WebView view, String url)
        {
            //handle all audio and video links to mp3, mp4 and 3gp files
            if (url.contains(".mp3"))
            {
                Intent intent = new Intent(Intent.ACTION_VIEW);
                intent.setDataAndType(Uri.parse(url), "audio/*");
                view.getContext().startActivity(intent);
                return true;
            }
            else if (url.contains(".mp4") || url.contains(".3gp"))
            {
                Intent intent = new Intent(Intent.ACTION_VIEW);
                intent.setDataAndType(Uri.parse(url), "video/*");
                view.getContext().startActivity(intent);
                return true;
            }
            else
            {
                return super.shouldOverrideUrlLoading(view, url);
            }

        }