Поддерживает ли Chromecast TTML?
Документы для разработчиков Chromecast говорят, что и WebVTT, и TTML являются поддерживаемыми типами мультимедиа: https://developers.google.com/cast/supported_media_types
Я вижу подписи при использовании файла WebVTT в теге "track" внутри элемента видео:
<video id="vid" src="http://myurl">
<track kind="captions" src="http://10.16.236.23/test.vtt" srclang="en" label="English" default>
</video>
Но когда я пытаюсь сделать то же самое, используя правильный файл TTML, я не вижу подписи:
<video id="vid" src="http://myurl">
<track kind="captions" src="test.ttml" srclang="en" label="English" default>
</video>
Когда я проверяю элемент video в консоли отладчика, для примера WebVTT я вижу
document.getElementById('vid').textTracks[0].cues.length;
16
но для TTML:
document.getElementById('vid').textTracks[0].cues.length;
0
Я на правильном пути с этим или TTML поддерживается по-другому? Может быть, мой синтаксис TTML не поддерживается Chromecast?
2 ответа
В отличие от webVTT, TTML изначально не поддерживается. Если вам нужно поддерживать это в вашем приложении, вы можете просто написать анализатор Javascript для анализа файла и добавить подсказки к вашему элементу видео в javascript, используя такие методы, как addTextTrack() и т. Д.
В соответствии с API-интерфейсом Cast Player, Chromecast теперь поддерживает форматы титров WebVTT, TTML1 и CEA-608 (подписи строки 21). Просто пройдите в CaptionsType
enum для вашего формата подписи в плеере enableCaptions()
метод.