diff --git a/dashboard-ui/scripts/htmlmediarenderer.js b/dashboard-ui/scripts/htmlmediarenderer.js index d4e4486162..562f6c33a9 100644 --- a/dashboard-ui/scripts/htmlmediarenderer.js +++ b/dashboard-ui/scripts/htmlmediarenderer.js @@ -379,7 +379,11 @@ var currentTrackIndex = -1; for (var i = 0, length = tracks.length; i < length; i++) { if (tracks[i].isDefault) { - currentTrackIndex = i; + if (browserInfo.msie) { + currentTrackIndex = i; + } else { + currentTrackIndex = tracks[i].index; + } break; } } @@ -423,7 +427,8 @@ var defaultAttribute = t.isDefault ? ' default' : ''; - return ''; + var label = t.language || 'und'; + return ''; }).join(''); @@ -507,15 +512,29 @@ var allTracks = mediaElement.textTracks; // get list of tracks var modes = ['disabled', 'showing', 'hidden']; + var expectedId = 'textTrack' + trackIndex; for (var i = 0; i < allTracks.length; i++) { + var currentTrack = allTracks[i]; + + console.log('currentTrack id: ' + currentTrack.id); + var mode; - if (trackIndex == i) { - mode = 1; // show this track + // IE doesn't support track id + if (browserInfo.msie) { + if (trackIndex == i) { + mode = 1; // show this track + } else { + mode = 0; // hide all other tracks + } } else { - mode = 0; // hide all other tracks + if (currentTrack.id == expectedId) { + mode = 1; // show this track + } else { + mode = 0; // hide all other tracks + } } console.log('Setting track ' + i + ' mode to: ' + mode); @@ -525,14 +544,14 @@ // edit: not anymore var useNumericMode = false; - if (!isNaN(allTracks[i].mode)) { + if (!isNaN(currentTrack.mode)) { //useNumericMode = true; } if (useNumericMode) { - allTracks[i].mode = mode; + currentTrack.mode = mode; } else { - allTracks[i].mode = modes[mode]; + currentTrack.mode = modes[mode]; } } }; diff --git a/dashboard-ui/scripts/mediaplayer.js b/dashboard-ui/scripts/mediaplayer.js index 7efcc719bd..c75a858970 100644 --- a/dashboard-ui/scripts/mediaplayer.js +++ b/dashboard-ui/scripts/mediaplayer.js @@ -418,7 +418,8 @@ tracks.push({ url: textStreamUrl, language: (textStream.Language || 'und'), - isDefault: textStream.Index == mediaSource.DefaultSubtitleStreamIndex + isDefault: textStream.Index == mediaSource.DefaultSubtitleStreamIndex, + index: textStream.Index }); }