mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
add text track label
This commit is contained in:
parent
519430417b
commit
3093a14c89
2 changed files with 29 additions and 9 deletions
|
@ -379,7 +379,11 @@
|
||||||
var currentTrackIndex = -1;
|
var currentTrackIndex = -1;
|
||||||
for (var i = 0, length = tracks.length; i < length; i++) {
|
for (var i = 0, length = tracks.length; i < length; i++) {
|
||||||
if (tracks[i].isDefault) {
|
if (tracks[i].isDefault) {
|
||||||
|
if (browserInfo.msie) {
|
||||||
currentTrackIndex = i;
|
currentTrackIndex = i;
|
||||||
|
} else {
|
||||||
|
currentTrackIndex = tracks[i].index;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -423,7 +427,8 @@
|
||||||
|
|
||||||
var defaultAttribute = t.isDefault ? ' default' : '';
|
var defaultAttribute = t.isDefault ? ' default' : '';
|
||||||
|
|
||||||
return '<track kind="subtitles" src="' + t.url + '" srclang="' + t.language + '"' + defaultAttribute + '></track>';
|
var label = t.language || 'und';
|
||||||
|
return '<track id="textTrack' + t.index + '" label="' + label + '" kind="subtitles" src="' + t.url + '" srclang="' + t.language + '"' + defaultAttribute + '></track>';
|
||||||
|
|
||||||
}).join('');
|
}).join('');
|
||||||
|
|
||||||
|
@ -507,16 +512,30 @@
|
||||||
var allTracks = mediaElement.textTracks; // get list of tracks
|
var allTracks = mediaElement.textTracks; // get list of tracks
|
||||||
|
|
||||||
var modes = ['disabled', 'showing', 'hidden'];
|
var modes = ['disabled', 'showing', 'hidden'];
|
||||||
|
var expectedId = 'textTrack' + trackIndex;
|
||||||
|
|
||||||
for (var i = 0; i < allTracks.length; i++) {
|
for (var i = 0; i < allTracks.length; i++) {
|
||||||
|
|
||||||
|
var currentTrack = allTracks[i];
|
||||||
|
|
||||||
|
console.log('currentTrack id: ' + currentTrack.id);
|
||||||
|
|
||||||
var mode;
|
var mode;
|
||||||
|
|
||||||
|
// IE doesn't support track id
|
||||||
|
if (browserInfo.msie) {
|
||||||
if (trackIndex == i) {
|
if (trackIndex == i) {
|
||||||
mode = 1; // show this track
|
mode = 1; // show this track
|
||||||
} else {
|
} else {
|
||||||
mode = 0; // hide all other tracks
|
mode = 0; // hide all other tracks
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
if (currentTrack.id == expectedId) {
|
||||||
|
mode = 1; // show this track
|
||||||
|
} else {
|
||||||
|
mode = 0; // hide all other tracks
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
console.log('Setting track ' + i + ' mode to: ' + mode);
|
console.log('Setting track ' + i + ' mode to: ' + mode);
|
||||||
|
|
||||||
|
@ -525,14 +544,14 @@
|
||||||
// edit: not anymore
|
// edit: not anymore
|
||||||
var useNumericMode = false;
|
var useNumericMode = false;
|
||||||
|
|
||||||
if (!isNaN(allTracks[i].mode)) {
|
if (!isNaN(currentTrack.mode)) {
|
||||||
//useNumericMode = true;
|
//useNumericMode = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (useNumericMode) {
|
if (useNumericMode) {
|
||||||
allTracks[i].mode = mode;
|
currentTrack.mode = mode;
|
||||||
} else {
|
} else {
|
||||||
allTracks[i].mode = modes[mode];
|
currentTrack.mode = modes[mode];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
|
@ -418,7 +418,8 @@
|
||||||
tracks.push({
|
tracks.push({
|
||||||
url: textStreamUrl,
|
url: textStreamUrl,
|
||||||
language: (textStream.Language || 'und'),
|
language: (textStream.Language || 'und'),
|
||||||
isDefault: textStream.Index == mediaSource.DefaultSubtitleStreamIndex
|
isDefault: textStream.Index == mediaSource.DefaultSubtitleStreamIndex,
|
||||||
|
index: textStream.Index
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue