Skip to content

Commit

Permalink
Clear out emulated text tracks manually in dipose
Browse files Browse the repository at this point in the history
  • Loading branch information
gkatsev committed Jul 27, 2015
1 parent 6d75a25 commit 486dc45
Showing 1 changed file with 12 additions and 6 deletions.
18 changes: 12 additions & 6 deletions src/js/tech/html5.js
Original file line number Diff line number Diff line change
Expand Up @@ -92,17 +92,23 @@ class Html5 extends Tech {
*/
dispose() {
let tt = this.el().textTracks;
let emulatedTt = this.textTracks();

// remove native event listeners
tt.removeEventListener('change', this.handleTextTrackChange_);
tt.removeEventListener('addtrack', this.handleTextTrackAdd_);
tt.removeEventListener('removetrack', this.handleTextTrackRemove_);

// clearout the emulated text track list.
let i = emulatedTt.length;

while (i--) {
emulatedTt.removeTrack_(emulatedTt[i]);
}


Html5.disposeMediaElement(this.el_);
super.dispose();

// events get triggered asynchronously and we want to get all the `removetrack` events
// so we need to remove the `removetrack` handler asynchronously.
setTimeout(() => {
tt.removeEventListener('removetrack', this.handleTextTrackRemove_);
}, 0);
}

/**
Expand Down

0 comments on commit 486dc45

Please sign in to comment.