原理分析:当选择一个视频的时候,如果系统有多个播放器,此时会发一个隐式意图,匹配该隐式意图的播放器都能播放
可以参照系统是如何调起系统默认播放器的,在系统上层应用Gallery的AndroidManifest.xml中找到MovieView(系统默认播放器)这个activity
<activity android:name="com.android.camera.MovieView"
android:label="@string/movieviewlabel"
android:screenOrientation="landscape"
android:configChanges="orientation|keyboardHidden"
android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="rtsp" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="video/*" />
<data android:mimeType="application/sdp" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="http" />
<data android:mimeType="video/mp4" />
<data android:mimeType="video/3gp" />
<data android:mimeType="video/3gpp" />
<data android:mimeType="video/3gpp2" />
</intent-filter>
</activity>
将所有的意图拷贝到自己的播放的activity的配置中
这样在系统发送隐私意图,打开选择界面activity的时候,我们的播放器也会出现在选择界面
下面的代码是系统调起所有的播放器
Intent intent = new Intent();
intent.setDataAndType(Uri.parse("视频播放地址"),"video/*");
context.startActivity(intent);
这样就能让我们的播放器播放视频了