【发布时间】:2019-05-15 12:02:28
【问题描述】:
我正在使用 vlcj DefaultEmbeddedMediaPlayer 的实例来播放视频。在为视频添加字幕时,我想查看字幕文件是否有效,如果不是,则抛出异常。这是我的代码:
File subtitlesFile = new File("subs.srt");
player.setSubTitleFile(subTitleFile);
方法setSubTitleFile(File subTitleFile) 没有返回值,但查看它的实现,我可以看到它将调用传递给libvlc,调用libvlc_video_subtitle_file(libvlc_media_player_t p_mi, String psz_subtitle),它返回1 或0,具体取决于是否字幕是否添加成功。所以我继承了DefaultEmbeddedMediaPlayer 并编写了我自己版本的该方法:
public void setSubTitleFile(String subTitleFileName) {
final int status = libvlc.libvlc_video_set_subtitle_file(mediaPlayerInstance(), subTitleFileName);
System.out.println(status);
// throw Exception if status is false
}
令人惊讶的是,这总是给我状态1,这意味着成功。即使我传递一个空的文本文件。这是一个错误吗?我真的不想事先手动解析字幕文件。使用本机 VLC 播放器,如果字幕无效,我会按预期收到错误。有什么我可以在这里做的吗?
编辑: 这是本机 VLC 播放器在播放过程中添加空 SRT 文件时的屏幕截图。 VLC subtitles file error
【问题讨论】:
-
我刚刚发现 libvlc_video_set_subtitle_file 已从 VLC 3.x 中删除
标签: java vlc libvlc subtitle vlcj