TextTrackImplWeb constructor
TextTrackImplWeb()
Implementation
TextTrackImplWeb(super.id, super.uid, super.label, super.language, super.kind, super.inBandMetadataTrackDispatchType, super.readyState, super.type,
super.cues, super.activeCues, super.source, super.isForced, super.mode, this._nativeTextTrack) {
addCueEventListener = allowInterop((TextTrackAddCueEventJS event) {
var cue = event.cue;
var flutterCue = CueImplWeb(cue.id, cue.uid, cue.startTime, cue.endTime, jsObjectToJsonString(cue.content) ?? "", cue);
cues.add(flutterCue);
dispatchEvent(TextTrackAddCueEvent(track: this, cue: flutterCue));
});
removeCueEventListener = allowInterop((TextTrackRemoveCueEventJS event) {
var cue = event.cue;
Cue? flutterCue = cues.firstWhereOrNull((item) => item.uid == cue.uid);
if (flutterCue == null) {
return;
}
cues.remove(flutterCue);
activeCues.remove(flutterCue);
dispatchEvent(TextTrackRemoveCueEvent(track: this, cue: flutterCue));
});
enterCueEventListener = allowInterop((TextTrackEnterCueEventJS event) {
var cue = event.cue;
Cue? flutterCue = cues.firstWhereOrNull((item) => item.uid == cue.uid);
if (flutterCue == null) {
return;
}
activeCues.add(flutterCue);
dispatchEvent(TextTrackEnterCueEvent(cue: flutterCue));
});
exitCueEventListener = allowInterop((TextTrackExitCueEventJS event) {
var cue = event.cue;
Cue? flutterCue = cues.firstWhereOrNull((item) => item.uid == cue.uid);
if (flutterCue == null) {
return;
}
activeCues.remove(flutterCue);
dispatchEvent(TextTrackExitCueEvent(cue: flutterCue));
});
cueChangeEventListener = allowInterop((TextTrackCueChangeEventJS event) {
dispatchEvent(TextTrackCueChangeEvent(track: this));
});
changeEventListener = allowInterop((TextTrackChangeEventJS event) {
dispatchEvent(TextTrackChangeEvent(track: this));
});
_nativeTextTrack.addEventListener(TextTrackEventTypes.ADDCUE.toLowerCase(), addCueEventListener);
_nativeTextTrack.addEventListener(TextTrackEventTypes.REMOVECUE.toLowerCase(), removeCueEventListener);
_nativeTextTrack.addEventListener(TextTrackEventTypes.ENTERCUE.toLowerCase(), enterCueEventListener);
_nativeTextTrack.addEventListener(TextTrackEventTypes.EXITCUE.toLowerCase(), exitCueEventListener);
_nativeTextTrack.addEventListener(TextTrackEventTypes.CHANGE.toLowerCase(), changeEventListener);
_nativeTextTrack.addEventListener(TextTrackEventTypes.CUECHANGE.toLowerCase(), cueChangeEventListener);
}