AudioTrackListImplWeb constructor
AudioTrackListImplWeb(
- THEOplayerArrayList<
THEOplayerAudioTrack> _theoPlayerAudioTracks
Implementation
AudioTrackListImplWeb(this._theoPlayerAudioTracks) {
addTrackEventListener = (AddAudioTrackEventJS event) {
var track = event.track;
AudioQualities qualities = toFlutterAudioQualities(JSHelpers.jsArrayToList<THEOplayerAudioQuality>(track.qualities));
var flutterTrack = AudioTrackImplWeb(
track.id,
track.uid,
track.label,
track.language,
track.kind,
qualities,
track.enabled,
track
);
add(flutterTrack);
dispatchEvent(AddAudioTrackEvent(track: flutterTrack));
}.toJS;
removeTrackEventListener = (RemoveAudioTrackEventJS event) {
var track = event.track;
var flutterTrack = firstWhereOrNull((item) => item.uid == track.uid);
if (flutterTrack == null) {
return;
}
remove(flutterTrack);
dispatchEvent(RemoveAudioTrackEvent(track: flutterTrack));
}.toJS;
//only triggered for enable/disable
changeTrackEventListener = (AudioTrackListChangeEventJS event) {
var track = event.track;
var flutterTrack = firstWhereOrNull((item) => item.uid == track.uid);
if (flutterTrack == null) {
return;
}
dispatchEvent(AudioTrackListChangeEvent(track: flutterTrack));
}.toJS;
_theoPlayerAudioTracks.addEventListener(AudioTracksEventTypes.ADDTRACK.toLowerCase(), addTrackEventListener);
_theoPlayerAudioTracks.addEventListener(AudioTracksEventTypes.REMOVETRACK.toLowerCase(), removeTrackEventListener);
_theoPlayerAudioTracks.addEventListener(AudioTracksEventTypes.CHANGE.toLowerCase(), changeTrackEventListener);
}