diff --git a/lib/src/participant/local_participant.dart b/lib/src/participant/local_participant.dart index 8669eb5..ea1d0f2 100644 --- a/lib/src/participant/local_participant.dart +++ b/lib/src/participant/local_participant.dart @@ -231,6 +231,18 @@ class LocalParticipant extends Participant { void updateFromInfo(lk_models.ParticipantInfo info) { super.updateFromInfo(info); } + + @override + List get subscribedTracks => + super.subscribedTracks.cast().toList(); + + @override + List get videoTracks => + super.videoTracks.cast(); + + @override + List get audioTracks => + super.audioTracks.cast(); } extension LocalParticipantTrackSourceExt on LocalParticipant { diff --git a/lib/src/participant/participant.dart b/lib/src/participant/participant.dart index 2276bf9..c568c5c 100644 --- a/lib/src/participant/participant.dart +++ b/lib/src/participant/participant.dart @@ -74,8 +74,17 @@ abstract class Participant extends DisposableChangeNotifier ConnectionQuality get connectionQuality => _connectionQuality; /// tracks that are subscribed to - List get subscribedTracks => - trackPublications.values.where((e) => e.subscribed).toList(); + List get subscribedTracks => trackPublications.values + .where((e) => e.subscribed) + .toList(); + + List get videoTracks => trackPublications.values + .where((e) => e.kind == lk_models.TrackType.VIDEO) + .toList(); + + List get audioTracks => trackPublications.values + .where((e) => e.kind == lk_models.TrackType.AUDIO) + .toList(); /// for internal use /// {@nodoc} @@ -178,17 +187,6 @@ abstract class Participant extends DisposableChangeNotifier bool operator ==(Object other) => other is Participant && sid == other.sid; } -// Convenience extension -extension ParticipantExt on Participant { - List get videoTracks => trackPublications.values - .where((e) => e.kind == lk_models.TrackType.VIDEO) - .toList(); - - List get audioTracks => trackPublications.values - .where((e) => e.kind == lk_models.TrackType.AUDIO) - .toList(); -} - extension ParticipantTrackSourceExt on Participant { bool isCameraEnabled() { return !(getTrackPublicationBySource(TrackSource.camera)?.muted ?? true); diff --git a/lib/src/participant/remote_participant.dart b/lib/src/participant/remote_participant.dart index 244f796..fb7ae85 100644 --- a/lib/src/participant/remote_participant.dart +++ b/lib/src/participant/remote_participant.dart @@ -20,6 +20,19 @@ class RemoteParticipant extends Participant { final RTCEngine _engine; RTCEngine get engine => _engine; + @override + List get subscribedTracks => super.subscribedTracks + .cast() + .toList(); + + @override + List get videoTracks => + super.videoTracks.cast(); + + @override + List get audioTracks => + super.audioTracks.cast(); + RemoteParticipant( this._engine, String sid,