将我的应用程序显示为默认视频播放器并获取活动中的视频路径

时间:2018-03-19 14:36:38

标签: android android-mediaplayer android-video-player

我想显示用户选择以选择我的应用程序作为默认视频播放器。为此,我在AndroidManifest.xml

中使用以下代码
<activity
android:name=".video.NewVideoPlayerActivity"
android:enabled="true"
android:exported="true"
android:icon="@drawable/ic_launcher">
    <intent-filter>
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <data android:mimeType="video/mp4" />
    </intent-filter>
</activity>

通过使用上面的代码,我可以在选择默认视频播放器时显示我的应用程序作为选项。但是我无法获得用户选择的视频文件的绝对路径。我使用以下代码来获取活动中的视频路径。

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    if (getIntent() != null) {
        if (getIntent().getAction() != null) {
            if (getIntent().getAction().equals(Intent.ACTION_VIEW)) {
                if (getIntent().getData() != null) {
                    //stringExtra = getIntent().getData().getPath();
                    Logger.getInstance().error(getRealPathFromURI(getIntent().getData()));
                }
            }
        }
    }
}

public String getRealPathFromURI( Uri contentUri) {
        Cursor cursor = null;
        try {
            String[] proj = { MediaStore.Video.Media.DATA };
            cursor = getContentResolver().query(contentUri,  proj, null, null, null);
            int column_index = cursor.getColumnIndexOrThrow(MediaStore.Video.Media.DATA);
            cursor.moveToFirst();
            return cursor.getString(column_index);
        } finally {
            if (cursor != null) {
                cursor.close();
            }
        }
    }

这是我尝试过的。我如何将用户的播放器显示为默认视频播放器选择器并在我的活动中获取用户选择的视频路径?

0 个答案:

没有答案