我想在我的接收器应用程序中使用 TTML 字幕 URL 更新 SmoothStreaming chromecast 播放器。我的清单文件从一开始就不包含这个 URL,所以我需要添加它:
cast.player.enableCaptions(true, 'ttml', subtitleUrl);
我在播放器启动并将元数据加载到媒体元素后立即执行此操作(如其他帖子中所建议的那样),但是在查看
protocol.getStreamCount();
我只得到两个流:一个用于视频,一个用于音频。我在那里看不到任何字幕的迹象。我还尝试覆盖主机对象中的清单信息(这适用于许可证 url):
host.updateCaptionsRequestInfo = function (request){
requestInfo.url=subtitleUrl;
}
但是在我调用 enableCaptions 函数之前不会调用此函数(并且仅在我添加第三个参数时才调用,此时第三个参数是不必要的,因为它被 updateCationsRequestInfo 函数覆盖)。
有谁知道如何检查字幕请求是否在某处被接受或拒绝,以及如何处理?最好不要使用 updateCationsRequestInfo(),因为这样我就可以在播放期间更改字幕。
问题可能是 url 看起来不像 ttml 链接(它是通过转换器传递的另一种格式)?
感谢您的帮助!
关于 CORS 的更新:
我在调用 player.enableCaptions() 之前记录了 ttml-url,如果我跟随 url,我会得到 ttml 文件(响应标题:Content-Type:text/xml 和一些与 CORS 相关的标题)。在谷歌开发工具中,我看不到任何与 player.enableCaptions() 相关的内容,没有错误或成功消息。所以它与 CORS 问题无关。