Google Cast - 使用样式媒体接收器的字幕?

时间:2014-03-06 07:21:38

标签: android google-cast

我正在使用Styled Media Receiver。我的视频有一个带有WebVTT字幕的URL,我想让它们给接收者显示它们,但是在API文档中找不到任何方法。

我正在使用Styled Media Receiver,因为我的Javascript / HTML很弱,但我还没有找到一种方法从Android发送者发送字幕而不使用Media Player库。

2 个答案:

答案 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);