我正在使用Styled Media Receiver。我的视频有一个带有WebVTT字幕的URL,我想让它们给接收者显示它们,但是在API文档中找不到任何方法。
我正在使用Styled Media Receiver,因为我的Javascript / HTML很弱,但我还没有找到一种方法从Android发送者发送字幕而不使用Media Player库。
答案 0 :(得分:1)
如果您不需要/想要使用Media Player lib,请查看此示例代码以在接收器应用中执行您自己的隐藏式字幕。
https://github.com/googlecast/CastClosedCaptioning-chrome/blob/master/closedcaptioningreceiver.html
window.showTracks = function() {
console.log('showTracks activeTrackIndex='+window.activeTrackIndex+'
if (window.activeTrackIndex != undefined &&
window.activeTrackIndex >= 0 &&
window.activeTrackIndex < window.tracks.length) {
var trackElement = document.createElement('track');
trackElement.src = window.tracks[window.activeTrackIndex]['src'];
console.log('showTracks trackElement.src='+trackElement.src);
if (window.mediaElement.firstChild) {
window.mediaElement.replaceChild(
trackElement, window.mediaElement.firstChild);
} else {
window.mediaElement.appendChild(trackElement);
}
window.mediaElement['textTracks'][0].mode = 'showing';
} else {
window.mediaElement['textTracks'] = null;
window.mediaElement.innerHTML = null;
}
};
CC web vtt文件由Chrome发件人作为自定义数据传递,但您也可以使用Android发件人。
var customData = event.data['customData'];
if (customData && customData['cc']) {
tracks = customData['cc']['tracks'];
window.activeTrackIndex = customData['cc']['active'];
showTracks();
}
答案 1 :(得分:0)
您需要编写自己的接收器,自定义接收器。谷歌github有一个示例应用程序,你可以参考。然后你可以通过
启用它mediaPlayer.enableCaptions(true,'ttml',url);