При использовании libVLC для Android как узнать, являются ли субтитры (текстовая дорожка) внешними (.srt, < strong> ass) или часть файла контейнера видео (текстовая дорожка внутри .mkv)?
https://code.videolan.org/videolan/libvlc-android-samples
https://code.videolan.org/videolan/vlc-android
// MediaPlayer.getSpuTracks() - Get the list of available spu (subtitle) tracks.
MediaPlayer.TrackDescription[] trackDescriptions = mMediaPlayer.getSpuTracks();
for (int i = 1; i < trackDescriptions.length; i++) {
MediaPlayer.TrackDescription description = trackDescriptions[i];
Log.i(TAG, "loadSpuTrack " + description.name + ", id " + description.id);
}
Вывод
loadSpuTrack Track 1, id 2
loadSpuTrack Track 2, id 3
loadSpuTrack Track 3, id 4
loadSpuTrack Track 4, id 5
loadSpuTrack Track 5, id 6
Он просто ищет и добавляет все внешние файлы текстовых треков (.srt, .ass) из родительского файла (каталога) видеофайла (.mkv) и из самого видеофайла.
Но нет API (методы Java внутри классов MediaPlayer
или LibVLC
) для определения того, являются ли добавленные субтитры внешними или внутренними (из контейнера видеофайлов), нет метода для отключения добавления внешних субтитров.
Есть какое-нибудь решение?