VLC | MX Player не добавляет субтитры, когда я использую FileProvider в Android - PullRequest
0 голосов
/ 31 октября 2018

Я хотел бы создать ACTION_VIEW намерение для воспроизведения видеофайла с субтитрами SRT и использовать FileProvider.

//mCtx is a Context
Intent i = new Intent(Intent.ACTION_VIEW);
Uri uri = FileProvider.getUriForFile(mCtx, mCtx.getApplicationContext().getPackageName() + ".provider", fd); //file descriptor to video file
i.setDataAndType(uri, "video/*");
Uri uriSrt = FileProvider.getUriForFile(mCtx, mCtx.getApplicationContext().getPackageName() + ".provider", fdSrt); //file descriptor to srt file
i.putExtra("subtitles_location", uriSrt);//for MX Player is String: "subs"

VLC воспроизводит видео без SRT .

Но когда я заменю эту строку:

i.setDataAndType(uri, "video/*");
//VLC can not browse a folder and show: content://<app package name>/...

по этой строке

i.setDataAndType(Uri.parse(fd.getPath()), "video/*");
//VLC can browse a folder, and show: file:///storage/emulated/0/...

VLC воспроизводит видео с SRT . Но не всегда. Иногда я получаю сообщение в logcat: ErrorMessage VLC is unable to open the MRL '/storage/emulated/0/<path>/2018-10-31_18.mp4' и видео не воспроизводится.

Примечание: файл srt находится в том же месте, что и видеофайл с тем же именем и другим суффиксом.
Пример: видео: 2018-10-31.mp4, источник: 2018-10-31.srt.

Некоторые проигрыватели видео из Google Play не могут открыть намерение с помощью FileProvider, например: FX Player или uPlayer

...