diff --git a/src/js/control-bar/text-track-controls/text-track-menu-item.js b/src/js/control-bar/text-track-controls/text-track-menu-item.js index 82e96a83bf..11898de223 100644 --- a/src/js/control-bar/text-track-controls/text-track-menu-item.js +++ b/src/js/control-bar/text-track-controls/text-track-menu-item.js @@ -38,6 +38,7 @@ class TextTrackMenuItem extends MenuItem { if (tracks) { const changeHandler = Fn.bind(this, this.handleTracksChange); + player.on(['loadstart', 'texttrackchange'], changeHandler); tracks.addEventListener('change', changeHandler); this.on('dispose', function() { tracks.removeEventListener('change', changeHandler); diff --git a/src/js/tech/tech.js b/src/js/tech/tech.js index 2c333f71cc..9ffaccfbf4 100644 --- a/src/js/tech/tech.js +++ b/src/js/tech/tech.js @@ -622,11 +622,15 @@ class Tech extends Component { textTracksChanges(); tracks.addEventListener('change', textTracksChanges); + tracks.addEventListener('addtrack', textTracksChanges); + tracks.addEventListener('removetrack', textTracksChanges); this.on('dispose', function() { remoteTracks.off('addtrack', handleAddTrack); remoteTracks.off('removetrack', handleRemoveTrack); tracks.removeEventListener('change', textTracksChanges); + tracks.removeEventListener('addtrack', textTracksChanges); + tracks.removeEventListener('removetrack', textTracksChanges); for (let i = 0; i < tracks.length; i++) { const track = tracks[i];