«

Android在应用中打开系统播放器

时间:2024-3-2 19:52     作者:韩俊     分类: Android


在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

热门推荐