Как воспроизводить видео с помощью стандартного приложения видеоплеера телефона - PullRequest
1 голос
/ 11 апреля 2020

Я хочу воспроизвести видео, сохраненное во внешнем хранилище, с помощью стандартного приложения «Видеоплеер» телефона. Я пытался использовать FileProvider, но мне не удается передать видео в плеер.

private void passVideo(String videoname){
        File videoPath = new File(Environment.getExternalStorageDirectory(), "video_folder");
        File newFile = new File(videoPath, videoname);
        Uri path = FileProvider.getUriForFile(this, "com.example.provider", newFile);
        Intent shareIntent = ShareCompat.IntentBuilder.from(this)
                .setType(getContentResolver().getType(path))
                .setStream(path)
                .getIntent();
        shareIntent.setData(path);
        shareIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
        startActivity(Intent.createChooser(shareIntent, "Open Video..."));
    }

С помощью этого кода мне удается получить Chooser для Gmail, WhatsApp и других социальных сетей, но это не то, что я хочу, и все они говорят, что не могут обработать формат файла в любом случае. Это также дает возможность воспроизводить видео с VL C, но оно мгновенно вылетает. Я перепробовал все возможные форматы файлов, и ни один из них не работает.

Извините, если я упускаю что-то очевидное, я все еще начинающий.

1 Ответ

1 голос
/ 11 апреля 2020

ShareCompat.IntentBuilder для ACTION_SEND, что не является типичным Intent действием для воспроизведения видео. ACTION_VIEW будет более типичным. Итак, попробуйте:

private void passVideo(String videoname){
    File videoPath = new File(Environment.getExternalStorageDirectory(), "video_folder");
    File newFile = new File(videoPath, videoname);
    Uri uri = FileProvider.getUriForFile(this, "com.example.provider", newFile);
    Intent viewIntent = new Intent(Intent.ACTION_VIEW, uri);

    viewIntent.setType(getContentResolver().getType(uri));
    viewIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
    startActivity(viewIntent);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...