我有一个使用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视频的链接?
一旦确定,启动内部视频播放器的最佳方式是什么?我见过几种方式。
答案 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);
}
}