在Android应用中嵌入系统播放器可以使用Mediaplayer实例完成,但是如何打开系统播放器呢?(就是例如浏览网页,遇到一个rtsp链接,点击之后直接启动播放器)
首先由于我们的内容在网络上,我们需要添加权限:
<uses-permission android:name="android.permission.INTERNET"/>
其次,由于播放器实例是个Intent,我们需要创建他:
Intent intent = new Intent(Intent.ACTION_VIEW);
String type = "video/mp4";
Uri name = Uri.parse(url);
intent.setDataAndType(name, type);
intent.setClassName("com.cooliris.media", "com.cooliris.media.MovieView");
c.startActivity(intent);
至此,你已经可以打开播放器并且播放视频了。但是你有没有发现播放的时候是非全屏播放的?那么我们需要考虑,是否由于参数未传递?我们去查找源码:
实际上我们启动的系统播放器是位于Gallery3D这个应用中的,我们去$AndroidSourcepackagesappsGallery3D目录,找到srccomcoolirismedia的MovieView源码,发现onCreate中是设置了全屏的参数的:
if (intent.hasExtra(MediaStore.EXTRA_SCREEN_ORIENTATION)) {
int orientation = intent.getIntExtra(MediaStore.EXTRA_SCREEN_ORIENTATION, ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED);
if (orientation != getRequestedOrientation()) {
setRequestedOrientation(orientation);
}
}
那么接下来我们就可以修改我们的代码了:
Intent intent = new Intent(Intent.ACTION_VIEW);
String type = "video/mp4";
Uri name = Uri.parse(url);
intent.setDataAndType(name, type);
intent.setClassName("com.cooliris.media", "com.cooliris.media.MovieView");
putExtra(MediaStore.EXTRA_SCREEN_ORIENTATION, ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
c.startActivity(intent);
至此,我们已经可以播放视频,并且打开后就是全屏播放的。
另外,在浏览器中点击视频一般是跳出关联应用的选择框供你挑选的,这个效果可以这样实现(这样就不用担心com.cooliris.media被卸载或者用户想用别的播放器打开但没有选择了):
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.addCategory(Intent.CATEGORY_BROWSABLE);
intent.setData(Uri.parse(url));
c.startActivity(intent);
至此,该功能全部完成。
Android在应用中打开系统播放器
时间:2024-3-2 19:52 作者:韩俊 分类: Android
标签: android