在Android应用中嵌入系统播放器可以使用Mediaplayer实例完成,但是如何打开系统播放器呢?(就是例如浏览网页,遇到一个rtsp链接,点击之后直接启动播放器)
首先由于我们的内容在网络上,我们需要添加权限:
<uses-permission android:name="android.permission.INTERNET"/>
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);