Skip to content

Commit 7438250

Browse files
committed
audio-track-controller: autoselect default audio track
related to https://github.com/dailymotion/hls.js/issues/30
1 parent c731aff commit 7438250

File tree

2 files changed

+13
-5
lines changed

2 files changed

+13
-5
lines changed

src/controller/audio-track-controller.js

+11-4
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,7 @@ class AudioTrackController extends EventHandler {
1111
constructor(hls) {
1212
super(hls, Event.MANIFEST_LOADING,
1313
Event.MANIFEST_LOADED,
14-
Event.AUDIO_TRACK_LOADED
15-
);
14+
Event.AUDIO_TRACK_LOADED);
1615
this.tracks = [];
1716
this.trackId = 0;
1817
}
@@ -28,8 +27,16 @@ class AudioTrackController extends EventHandler {
2827
}
2928

3029
onManifestLoaded(data) {
31-
this.tracks = data.audioTracks || [];
32-
this.hls.trigger(Event.AUDIO_TRACKS_UPDATED, {audioTracks : this.tracks});
30+
let tracks = data.audioTracks || [];
31+
this.tracks = tracks;
32+
this.hls.trigger(Event.AUDIO_TRACKS_UPDATED, {audioTracks : tracks});
33+
// loop through available audio tracks and autoselect default if needed
34+
tracks.forEach(track => {
35+
if(track.default) {
36+
this.audioTrack = track.id;
37+
return;
38+
}
39+
});
3340
}
3441

3542
onAudioTrackLoaded(data) {

src/loader/playlist-loader.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ class PlaylistLoader extends EventHandler {
107107
}
108108

109109
parseMasterPlaylistMedia(string, baseurl, type) {
110-
let medias = [], result;
110+
let medias = [], result, id = 0;
111111

112112
// https://regex101.com is your friend
113113
const re = /#EXT-X-MEDIA:(.*)/g;
@@ -125,6 +125,7 @@ class PlaylistLoader extends EventHandler {
125125
if(!media.name) {
126126
media.name = media.lang;
127127
}
128+
media.id = id++;
128129
medias.push(media);
129130
}
130131
}

0 commit comments

Comments
 (0)