diff --git a/src/TizenVideo/TizenVideo.js b/src/TizenVideo/TizenVideo.js index 239bd12..518a0f7 100644 --- a/src/TizenVideo/TizenVideo.js +++ b/src/TizenVideo/TizenVideo.js @@ -156,7 +156,9 @@ function TizenVideo(options) { if (!gotTraktData && stream !== null) { gotTraktData = true; getTracksData(stream.url, function(resp) { - tracksData = resp; + if (resp) { + tracksData = resp; + } if (((tracksData || {}).subs || []).length) { onPropChanged('subtitlesTracks'); } @@ -234,10 +236,10 @@ function TizenVideo(options) { var textTrackLang = typeof extra.track_lang === 'string' && extra.track_lang.length > 0 ? extra.track_lang.trim() : null; if (((tracksData || {}).subs || []).length) { var extendedTrackData = tracksData.subs.find(function(el) { - return (el || {}).id === textTrack.index; + return (el || {}).id-1 === textTrack.index; }); - if ((extendedTrackData || {}).lang) { - textTrackLang = extendedTrackData.lang; + if (extendedTrackData) { + textTrackLang = extendedTrackData.lang || 'eng'; } } textTracks.push({ @@ -336,10 +338,10 @@ function TizenVideo(options) { var audioTrackLang = typeof extra.language === 'string' && extra.language.length > 0 ? extra.language : null; if (((tracksData || {}).audio || []).length) { var extendedTrackData = tracksData.audio.find(function(el) { - return (el || {}).id === audioTrack.index; + return (el || {}).id-1 === audioTrack.index; }); - if ((extendedTrackData || {}).lang) { - audioTrackLang = extendedTrackData.lang; + if (extendedTrackData) { + audioTrackLang = extendedTrackData.lang || 'eng'; } } audioTracks.push({ diff --git a/src/WebOsVideo/WebOsVideo.js b/src/WebOsVideo/WebOsVideo.js index 4b9e2df..d9eaada 100644 --- a/src/WebOsVideo/WebOsVideo.js +++ b/src/WebOsVideo/WebOsVideo.js @@ -229,6 +229,7 @@ function WebOsVideo(options) { } }; + // eslint-disable-next-line no-unused-vars var subscribe = function (cb) { if (subscribed) return; subscribed = true; @@ -440,6 +441,7 @@ function WebOsVideo(options) { }; var gotTraktData = false; + var tracksData = { audio: [], subs: [] }; function retrieveExtendedTracks() { if (!gotTraktData && stream !== null) { @@ -449,7 +451,9 @@ function WebOsVideo(options) { var nrAudio = 0; textTracks = []; audioTracks = []; - tracksData = resp; + if (resp) { + tracksData = resp; + } if (((tracksData || {}).subs || []).length) { tracksData.subs.forEach(function(track) { var textTrackId = nrSubs; @@ -459,8 +463,8 @@ function WebOsVideo(options) { } textTracks.push({ id: textTrackId, - lang: track.lang || null, - label: track.lang || null, + lang: track.lang || 'eng', + label: track.lang || 'eng', origin: 'EMBEDDED', embedded: true, mode: textTrackId === currentSubTrack ? 'showing' : 'disabled', @@ -478,8 +482,8 @@ function WebOsVideo(options) { } audioTracks.push({ id: audioTrackId, - lang: track.lang || null, - label: track.lang || null, + lang: track.lang || 'eng', + label: track.lang || 'eng', origin: 'EMBEDDED', embedded: true, mode: audioTrackId === currentAudioTrack ? 'showing' : 'disabled', @@ -1026,16 +1030,16 @@ function WebOsVideo(options) { if (videoElement.mediaId) { knownMediaId = videoElement.mediaId; clearInterval(timer); - retrieveExtendedTracks() - cb() -// subscribe(cb); + retrieveExtendedTracks(); + cb(); + // subscribe(cb); return; } count++; if (count > 4) { // console.log('failed to get media id'); clearInterval(timer); - retrieveExtendedTracks() + retrieveExtendedTracks(); cb(); } } diff --git a/src/tracksData.js b/src/tracksData.js index 88388bc..b7360c3 100644 --- a/src/tracksData.js +++ b/src/tracksData.js @@ -1,17 +1,13 @@ module.exports = function(url, cb) { fetch('http://127.0.0.1:11470/tracks/'+encodeURIComponent(url)).then(function(resp) { - resp.json().then(function(tracks) { - var audioTracks = tracks.filter(function(el) { return el.type === 'audio'; }); - var subsTracks = tracks.filter(function(el) { return el.type === 'text'; }); - cb({ audio: audioTracks, subs: subsTracks }); - }).catch(function(err) { - // eslint-disable-next-line no-console - console.error(err); - cb({ audio: [], subs: [] }); - }); + return resp.json(); + }).then(function(tracks) { + var audioTracks = tracks.filter(function(el) { return el.type === 'audio'; }); + var subsTracks = tracks.filter(function(el) { return el.type === 'text'; }); + cb({ audio: audioTracks, subs: subsTracks }); }).catch(function(err) { // eslint-disable-next-line no-console console.error(err); - cb({ audio: [], subs: [] }); + cb(false); }); };