Я использую экземпляр 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 Player, я получаю ошибку, как и ожидалось, если субтитры недействительны.Что-нибудь, что я мог сделать здесь?
РЕДАКТИРОВАТЬ: Это снимок экрана с родного проигрывателя VLC при добавлении пустого файла SRT во время воспроизведения. Ошибка файла субтитров VLC