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

在Android应用中嵌入系统播放器可以使用Mediaplayer实例完成,但是如何打开系统播放器呢?(就是例如浏览网页,遇到一个rtsp链接,点击之后直接启动播放器)
首先由于我们的内容在网络上,我们需要添加权限:
      

其次,由于播放器实例是个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");  
    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应用,android,多媒体)