如何在应用中打开系统播放器

在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这个应用中的,我们去$AndroidSource\packages\apps\Gallery3D目录,找到src\com\cooliris\media的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");
	intent.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);    

至此,该功能全部完成。





评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值