Hy!ChromeCast TTML带平滑流式处理和PlayReady的隐藏式字幕
我想创建一个支持TTML类型隐藏式字幕的应用程序。
我的主机/清单文件包含基于TTML的隐藏式字幕,我想问如何使用它?
我发现这个网站, https://developers.google.com/cast/docs/player 他们描述如下:
分段TTML & WebVTT插入
使用分段的TTML的平滑流和WebVTT插入 - 为HLS网络视频文本轨道。
要启用:
protocol_.enableStream(streamIndex,TRUE); player_.enableCaptions(true);
但我找不到我的问题的例子。在接收端创建我的主机后,我必须启用它吗? 有没有任何示例应用程序?
更新#1
这里是我的代码:
window.onload = function() {
var mediaElement = document.getElementById('video'); //video is a html video tag
var mediamanager = new cast.receiver.MediaManager(mediaElement);
var url = "http://playready.directtaps.net/smoothstreaming/SSWSS720H264/SuperSpeedway_720.ism/Manifest"; //Just a sample URL
var host = new cast.player.api.Host({ 'mediaElement': mediaElement, 'url': url });
window.player = new cast.player.api.Player(host);
protocol = cast.player.api.CreateSmoothStreamingProtocol(host);
var initStart = 0;
window.player.load(protocol, initStart);
mediamanager.loadedmetadata = function(loadinfo) {
//onMetadataLoaded fired, set the caption
}
}
它不工作。所以我决定让流:
var streamCount = protocol.getStreamCount();
而且streamCount包含0清单包含的闭合字幕,我应该使用别的东西,而不是getStreamCount()?
非常感谢!
谢谢您的回复! 我更新了我的代码并实现了onMetadataLoaded事件,但此事件未被触发。你怎么看,可能是什么问题? 谢谢! –
我可能会误解,但不是事件“loadedmetadata”的正确名称? –
哦,你是对的,它被加载元数据,我纠正了代码,但事件仍然没有被解雇,我仍然没有得到它。 :( –