libVLC:我如何知道字幕(文本轨道)是外部还是视频容器文件的一部分?

时间:2018-02-25 17:30:39

标签: android libvlc vlc-android

在Android上使用 libVLC 时如何知道字幕(文字追踪)是外部 .srt 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

它只是从视频文件(.mkv)的父文件(目录)和视频文件本身中搜索并添加所有外部文本跟踪文件(.srt,.ass)

但是没有API(MediaPlayerLibVLC类中的Java方法)来识别添加的字幕是外部的还是内部的(来自视频文件容器),没有禁用添加外部字幕的方法

有没有解决方案?

1 个答案:

答案 0 :(得分:0)

如果在列表末尾添加外部字幕(从属),这应该有效(将有助于确定外部字幕):

enter image description here