Fix deafening new participants (#28330)
Release Notes: - Fixed an issue where new participants were not muted when the room was deafened
This commit is contained in:
parent
14b43d573c
commit
ee7b1ec7f2
@ -944,8 +944,8 @@ impl Room {
|
||||
)
|
||||
})?;
|
||||
if self.live_kit.as_ref().map_or(true, |kit| kit.deafened) {
|
||||
if matches!(track, livekit_client::RemoteTrack::Audio(_)) {
|
||||
track.set_enabled(false, cx);
|
||||
if publication.is_audio() {
|
||||
publication.set_enabled(false, cx);
|
||||
}
|
||||
}
|
||||
match track {
|
||||
|
@ -255,23 +255,6 @@ impl RemoteTrackPublication {
|
||||
}
|
||||
}
|
||||
|
||||
impl RemoteTrack {
|
||||
pub fn set_enabled(&self, enabled: bool, cx: &App) {
|
||||
let this = self.clone();
|
||||
Tokio::spawn(cx, async move {
|
||||
match this {
|
||||
RemoteTrack::Audio(remote_audio_track) => {
|
||||
remote_audio_track.0.rtc_track().set_enabled(enabled)
|
||||
}
|
||||
RemoteTrack::Video(remote_video_track) => {
|
||||
remote_video_track.0.rtc_track().set_enabled(enabled)
|
||||
}
|
||||
}
|
||||
})
|
||||
.detach();
|
||||
}
|
||||
}
|
||||
|
||||
impl Participant {
|
||||
pub fn identity(&self) -> ParticipantIdentity {
|
||||
match self {
|
||||
|
@ -89,12 +89,3 @@ impl RemoteTrackPublication {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl RemoteTrack {
|
||||
pub fn set_enabled(&self, enabled: bool, _cx: &App) {
|
||||
match self {
|
||||
RemoteTrack::Audio(remote_audio_track) => remote_audio_track.set_enabled(enabled),
|
||||
RemoteTrack::Video(remote_video_track) => remote_video_track.set_enabled(enabled),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -43,23 +43,6 @@ impl RemoteAudioTrack {
|
||||
false
|
||||
}
|
||||
}
|
||||
|
||||
pub fn set_enabled(&self, enabled: bool) {
|
||||
let Some(room) = self.room.upgrade() else {
|
||||
return;
|
||||
};
|
||||
if enabled {
|
||||
room.0
|
||||
.lock()
|
||||
.paused_audio_tracks
|
||||
.remove(&self.server_track.sid);
|
||||
} else {
|
||||
room.0
|
||||
.lock()
|
||||
.paused_audio_tracks
|
||||
.insert(self.server_track.sid.clone());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl RemoteVideoTrack {
|
||||
@ -70,6 +53,4 @@ impl RemoteVideoTrack {
|
||||
pub fn publisher_id(&self) -> ParticipantIdentity {
|
||||
self.server_track.publisher_id.clone()
|
||||
}
|
||||
|
||||
pub(crate) fn set_enabled(&self, _enabled: bool) {}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user