return casted list for videoTracks/audioTracks/subscribedTracks

This commit is contained in:
Hiroshi Horie
2021-11-30 12:37:13 +07:00
parent c71bcaeaf8
commit 9e0a3b19fe
3 changed files with 36 additions and 13 deletions
@@ -231,6 +231,18 @@ class LocalParticipant extends Participant {
void updateFromInfo(lk_models.ParticipantInfo info) {
super.updateFromInfo(info);
}
@override
List<LocalTrackPublication> get subscribedTracks =>
super.subscribedTracks.cast<LocalTrackPublication>().toList();
@override
List<LocalTrackPublication> get videoTracks =>
super.videoTracks.cast<LocalTrackPublication>();
@override
List<LocalTrackPublication> get audioTracks =>
super.audioTracks.cast<LocalTrackPublication>();
}
extension LocalParticipantTrackSourceExt on LocalParticipant {
+11 -13
View File
@@ -74,8 +74,17 @@ abstract class Participant extends DisposableChangeNotifier
ConnectionQuality get connectionQuality => _connectionQuality;
/// tracks that are subscribed to
List<TrackPublication> get subscribedTracks =>
trackPublications.values.where((e) => e.subscribed).toList();
List<TrackPublication> get subscribedTracks => trackPublications.values
.where((e) => e.subscribed)
.toList();
List<TrackPublication> get videoTracks => trackPublications.values
.where((e) => e.kind == lk_models.TrackType.VIDEO)
.toList();
List<TrackPublication> 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<TrackPublication> get videoTracks => trackPublications.values
.where((e) => e.kind == lk_models.TrackType.VIDEO)
.toList();
List<TrackPublication> 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);
@@ -20,6 +20,19 @@ class RemoteParticipant extends Participant {
final RTCEngine _engine;
RTCEngine get engine => _engine;
@override
List<RemoteTrackPublication> get subscribedTracks => super.subscribedTracks
.cast<RemoteTrackPublication>()
.toList();
@override
List<RemoteTrackPublication> get videoTracks =>
super.videoTracks.cast<RemoteTrackPublication>();
@override
List<RemoteTrackPublication> get audioTracks =>
super.audioTracks.cast<RemoteTrackPublication>();
RemoteParticipant(
this._engine,
String sid,