Google Chromecast 字幕不工作

Google Chromecast subtitle not working

我有这个代码

var englishSubtitle = new chrome.cast.media.Track(2,chrome.cast.media.TrackType.TEXT);
englishSubtitle.trackContentId = 'english.vtt';
englishSubtitle.trackContentType = 'text/vtt';
englishSubtitle.subtype = chrome.cast.media.TextTrackType.CAPTIONS;
englishSubtitle.name = 'English';
englishSubtitle.language = 'en-US';
englishSubtitle.customData = null;
var tracks = englishSubtitle;

var mediaInfo = new chrome.cast.media.MediaInfo(app.streamState_.manifest);
mediaInfo.contentType = app.streamState_.type;
mediaInfo.metadata = new chrome.cast.media.GenericMediaMetadata();
mediaInfo.customData = null;
mediaInfo.streamType = chrome.cast.media.StreamType.BUFFERED;
mediaInfo.textTrackStyle = new chrome.cast.media.TextTrackStyle();
mediaInfo.tracks = tracks; 
mediaInfo.metadata.metadataType = chrome.cast.media.MetadataType.GENERIC;

var activeTrackIds = [2];   

var request = new chrome.cast.media.LoadRequest(mediaInfo);
request.autoplay = true;
request.currentTime = 0;
request.activeTrackIds = activeTrackIds;
session.loadMedia(request,onMediaDiscovered.bind(   this, 'loadedMedia'),  onMediaError);

我想在 chromecast 上显示字幕。当我想根据请求设置 activeTracks 时,我收到一个错误 对象{代码:"session_error",描述:"INVALID_PARAMS",详细信息:对象} 由于该错误,字幕不显示,视频根本不播放。 我做错了什么吗?

tracks设置

时应该是一个数组
mediaInfo.tracks = tracks;

对于你的情况,你应该尝试

var tracks = [englishSubtitle];

如前所述,使用字幕代替字幕。最后,即使您使用的是 mp4,也要确保您的 Web 服务器上存在 CORS headers。

tracks 应该存储在数组中

https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.MediaInfo#tracks
非空数组 chrome.cast.media.Track
轨道对象数组。

mediaInfo.tracks = [englishSubtitle, frenchSubtitle, germanSubtitle]

我为 chromecast SDK 创建了一个简单的 javascript 包装器:
https://github.com/Fenny/ChromecastJS

如果您遇到更多问题,可能值得一试,祝您好运!