diff --git a/lib/src/track/track.dart b/lib/src/track/track.dart index f258e89..449267f 100644 --- a/lib/src/track/track.dart +++ b/lib/src/track/track.dart @@ -36,6 +36,12 @@ abstract class Track extends DisposableChangeNotifier this.name, this.mediaStreamTrack, ) { + // Any event emitted will trigger ChangeNotifier + events.listen((event) { + logger.fine('[TrackEvent] $event, will notifyListeners()'); + notifyListeners(); + }); + onDispose(() async { logger.fine('${objectId} onDispose()'); // dispose events diff --git a/lib/src/track/video_track.dart b/lib/src/track/video_track.dart index 171ed17..7f28468 100644 --- a/lib/src/track/video_track.dart +++ b/lib/src/track/video_track.dart @@ -1,4 +1,5 @@ import 'package:flutter_webrtc/flutter_webrtc.dart' as rtc; +import 'package:livekit_client/src/internal/events.dart'; import 'package:meta/meta.dart'; import '../proto/livekit_models.pb.dart' as lk_models; @@ -26,7 +27,10 @@ abstract class VideoTrack extends Track { @internal void setMediaStream(rtc.MediaStream stream) { _mediaStream = stream; - notifyListeners(); + events.emit(TrackStreamUpdatedEvent( + track: this, + stream: stream, + )); } @override