В XBMC существует метод назначения субтитров и управления ими:
xbmc.Player().setSubtitles()
Казалось бы, что может быть проще? Проинил что следует и запускаем в плеер (в моем случае это был плейлист, содержащий всю информацию по трекам, в т.ч. и служебную), после чего жуём попкорн.
Но нет, субтитры никак не хотели отображаться ни на экране, ни даже в соотв. меню свойств плеера, как я ни бился над проблемой, изгуглив интернет до дыр - к слову сказать, XBMC крайне хреново документирован, большинство информации подчерпывается из форумов, где такие бедолаги, как я, ишут ответы на свои вопросы.
Что ж, в конце концов выход был найден благодаря безызвестному анонимусу, который вскользь заметил, что, оказывается, коварный плеер ничего по медиа не инит до тех пор, пока не открыл это самое медиа и не начал его играть. То есть попусту он ничего не знает о том, что куда назначать, пока не появился хэндл. Наверное, анонимус был одним из разработчиков XBMC :)
Таким образом, применив полученные знания на практике, я написал вот такой код (в реальности он несколько иной, я просто упросил для примера):
def playMedia(mediafile, subfile):
player = xbmc.Player()
player.play(mediafile)
if len(subfile) > 0:
for _ in xrange(30):
if player.isPlaying():
break
time.sleep(1)
player.setSubtitles(subfile)
Комментариев нет:
Отправить комментарий