2016-12-21 5 views
1

J'ai ce codesous-titre Google Chromecast ne fonctionne pas

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

Je veux montrer des sous-titres sur Chromecast. Lorsque je veux définir activeTracks sur la demande, je reçois une erreur Objet {code: "session_error", description: "INVALID_PARAMS", détails: Objet} Le sous-titre ne s'affiche pas et la vidéo ne joue pas à tous, à cause de cette erreur. Est-ce que je fais quelque chose de mal?

+0

Google Cast documentation => activeTrackIds Tableau de nombre Tableau de trackIds piste qui devrait être actif. Si le tableau n'est pas fourni, les pistes par défaut seront actives. Si deux TrackIds incompatibles sont fournis (par exemple deux pistes audio actives), la commande échouera avec INVALID_PARAMETER. (https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.LoadRequest) – Fefux

+0

J'ai lu la documentation, mais je n'arrive pas à comprendre ce que je fais de mal. Parce que j'envoie un seul trackid, qui est le texte –

+0

Dans le tutoriel, le sous-type de sous-titres est 'chrome.cast.media.TextTrackType.SUBTITLES' – Fefux

Répondre

0

tracks devrait être un tableau lorsque vous définissez

mediaInfo.tracks = tracks; 

Dans votre cas, vous devriez essayer

var tracks = [englishSubtitle]; 

et comme cela a été dit plus tôt, au lieu de l'utilisation SUBTITLES LÉGENDES. Enfin, assurez-vous que les en-têtes CORS sont présents sur votre serveur Web même si vous utilisez mp4.

+0

Yesss !!! Cela a résolu mon problème. Thak vous beaucoup !! –