2016-12-21 8 views
1

작동하지 내가 Chromecast의 자막을 표시하려면이 코드를구글 Chromecast의 자막

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

있습니다. 요청시 activeTracks를 설정하려고 할 때 오류가 발생합니다. 개체 {code : "session_error", 설명 : "INVALID_PARAMS", 세부 정보 : Object} 자막이 표시되지 않고 동영상이 재생되지 않습니다 모두 그 오류 때문입니다. 내가 잘못하고 있니? 당신이 귀하의 경우에는

mediaInfo.tracks = tracks; 

을 설정할 때

+0

구글은 활성화되어야 트랙 trackIds 수 배열의 문서 => activeTrackIds 배열을 캐스팅. 배열이 제공되지 않으면 기본 트랙이 활성화됩니다. 두 개의 호환되지 않는 trackIds (예 : 두 개의 활성 오디오 트랙)가 제공되면 명령이 INVALID_PARAMETER와 함께 실패합니다. (https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.LoadRequest) – Fefux

+0

설명서를 읽었지만 잘못된 것을 이해할 수 없습니다. 텍스트 하나 인 단일 trackid를 전송하기 때문에 –

+0

튜토리얼에서 자막 하위 유형은'chrome.cast.media.TextTrackType.SUBTITLES'입니다. – Fefux

답변

0

tracks, 당신은 시도해야 배열해야

var tracks = [englishSubtitle]; 

및 이전 말했다으로, 대신 자막 사용 자막. 마지막으로 mp4를 사용하는 경우에도 웹 서버에서 CORS 헤더가 있는지 확인하십시오.

+0

Yesss !!! 이것은 내 문제를 해결했다. 너 정말 대단하다 !! –