我正在使用默认媒体接收器为Google Cast / Chromecast构建Chrome发送者应用。我一直关注this guide from Google,显然文本轨道应该与默认接收器配合使用:
注意:目前,样式和默认媒体接收器允许您仅使用API的文本轨道。要使用音频和视频轨道,您必须开发自定义接收器。
我在服务器上启用了CORS,其他一切都运行正常。在启用CORS之前,媒体根本不会加载。跟踪相关的代码如下所示:
var englishSubtitle = new chrome.cast.media.Track(1, chrome.cast.media.TrackType.TEXT);
englishSubtitle.trackContentId = 'http://localhost:8000/assets/caption_en.vtt';
englishSubtitle.trackContentType = 'text/vtt';
englishSubtitle.subtype = chrome.cast.media.TextTrackType.SUBTITLES;
englishSubtitle.name = 'English Subtitles';
englishSubtitle.language = 'en-US';
englishSubtitle.customData = null;
var tracks = [englishSubtitle];
var mediaInfo = new chrome.cast.media.MediaInfo(videoURL);
mediaInfo.contentType = 'video/mp4';
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.duration = null;
mediaInfo.tracks = tracks;
然后我添加以下行来设置活动曲目并加载媒体。
var activeTrackIds = [1];
mediaInfo.activeTrackIds = activeTrackIds;
var request = new chrome.cast.media.LoadRequest(mediaInfo);
castSession.loadMedia(request).then(onLoadSuccess, onLoadError);
我无法弄清楚为什么这段代码不起作用。我没有收到任何错误,我已经尝试了很多我能想到的东西。视频播放,但字幕未显示。