默认接收器应用程序上的Chromecast字幕

时间:2014-05-08 18:10:04

标签: google-chrome chromecast google-cast

我正在尝试在我正在构建的Chromecast应用程序中包含字幕。

  1. 我正在使用默认接收器应用程序。
  2. 我正在使用chrome sender api的v1编写chrome sender应用程序。
  3. 根据Chromecast Sender Api documentation,我应该将一个track对象数组传递给chrome.cast.media.MediaInfo对象。我的问题是,每当我调用chrome.cast.media.Track(trackId, trackType)时,它都会返回undefined。当我通过控制台查看chrome.cast.media中的公共方法时,我没有看到与Track相关的任何内容。链接到文档here

    下面是我的loadMedia方法,其中我尝试包含一个跟踪对象数组以及由cast api指定的LoadRequest。注释掉的代码就是我在其中一个演员Github存储库中看到的隐藏式字幕的处理方式,但不幸的是我相信你必须在你自己的自定义接收器应用程序中处理这个customData。

    是否可以使用chrome sender SDK的字幕,还是必须构建自己的接收器应用程序,并通过传入的customData专门处理文本跟踪?我可能使用错误的发件人api吗?

    function loadMedia() {
      mediaUrl = decodeURIComponent(_player.sources.mp4);
      var mediaInfo = new chrome.cast.media.MediaInfo(mediaUrl);
      mediaInfo.contentType = 'video/mp4';
    
      var track1 = new chrome.cast.media.Track(1, chrome.cast.media.TrackType.TEXT);
      track1.trackContentId = "https://dl.dropboxusercontent.com/u/35106650/test.vtt";
    
      mediaInfo.tracks = [track1];
      var request = new chrome.cast.media.LoadRequest(mediaInfo);
    
      // var json = {
      //   cc: {
      //     tracks: [{
      //       src: "https://dl.dropboxusercontent.com/u/35106650/test.vtt"
      //     }],
      //     active: 0
      //   }
      // };
    
      // request.customData = json;
      session.loadMedia(request, onMediaDiscovered.bind(this, 'loadMedia'), onMediaError);
    }
    

1 个答案:

答案 0 :(得分:2)

目前,默认接收器和样式接收器都不支持隐藏式字幕;你需要创建自己的。我们有一个样本in our GitHub repo,可以用来做到这一点。

更新:样式和默认接收器现在支持曲目,请参阅我们的documentations