diff --git a/dashboard-ui/scripts/htmlmediarenderer.js b/dashboard-ui/scripts/htmlmediarenderer.js
index 562f6c33a9..237dc0123a 100644
--- a/dashboard-ui/scripts/htmlmediarenderer.js
+++ b/dashboard-ui/scripts/htmlmediarenderer.js
@@ -4,6 +4,7 @@
var hlsPlayer;
var requiresSettingStartTimeOnStart;
var subtitleTrackIndexToSetOnPlaying;
+ var currentTrackList;
function htmlMediaRenderer(options) {
@@ -375,15 +376,12 @@
}
tracks = tracks || [];
+ currentTrackList = tracks;
var currentTrackIndex = -1;
for (var i = 0, length = tracks.length; i < length; i++) {
if (tracks[i].isDefault) {
- if (browserInfo.msie) {
- currentTrackIndex = i;
- } else {
- currentTrackIndex = tracks[i].index;
- }
+ currentTrackIndex = tracks[i].index;
break;
}
}
@@ -505,14 +503,19 @@
return supportsTextTracks;
};
- self.setCurrentTrackElement = function (trackIndex) {
+ self.setCurrentTrackElement = function (streamIndex) {
- console.log('Setting new text track index to: ' + trackIndex);
+ console.log('Setting new text track index to: ' + streamIndex);
var allTracks = mediaElement.textTracks; // get list of tracks
var modes = ['disabled', 'showing', 'hidden'];
- var expectedId = 'textTrack' + trackIndex;
+ var expectedId = 'textTrack' + streamIndex;
+
+ var track = streamIndex == -1 ? null : currentTrackList.filter(function (t) {
+ return t.index == streamIndex;
+ })[0];
+ var trackIndex = streamIndex == -1 || !track ? -1 : currentTrackList.indexOf(track);
for (var i = 0; i < allTracks.length; i++) {
@@ -522,6 +525,8 @@
var mode;
+ console.log('expectedId: ' + expectedId + '--currentTrack.Id:' + currentTrack.id);
+
// IE doesn't support track id
if (browserInfo.msie) {
if (trackIndex == i) {
diff --git a/dashboard-ui/scripts/mediaplayer-video.js b/dashboard-ui/scripts/mediaplayer-video.js
index 30ff85db82..090210c00d 100644
--- a/dashboard-ui/scripts/mediaplayer-video.js
+++ b/dashboard-ui/scripts/mediaplayer-video.js
@@ -320,17 +320,7 @@
self.setCurrentTrackElement = function (index) {
- var textStreams = self.currentMediaSource.MediaStreams.filter(function (s) {
- return s.DeliveryMethod == 'External';
- });
-
- var newStream = textStreams.filter(function (s) {
- return s.Index == index;
- })[0];
-
- var trackIndex = newStream ? textStreams.indexOf(newStream) : -1;
-
- self.currentMediaRenderer.setCurrentTrackElement(trackIndex);
+ self.currentMediaRenderer.setCurrentTrackElement(index);
};
self.updateTextStreamUrls = function (startPositionTicks) {