From ee7b1ec7f2f120379d73d6f5a76ba79f4b1fe7d6 Mon Sep 17 00:00:00 2001 From: Conrad Irwin Date: Tue, 8 Apr 2025 10:01:27 -0600 Subject: [PATCH] Fix deafening new participants (#28330) Release Notes: - Fixed an issue where new participants were not muted when the room was deafened --- crates/call/src/call_impl/room.rs | 4 ++-- crates/livekit_client/src/livekit_client.rs | 17 ----------------- .../src/mock_client/publication.rs | 9 --------- .../livekit_client/src/mock_client/track.rs | 19 ------------------- 4 files changed, 2 insertions(+), 47 deletions(-) diff --git a/crates/call/src/call_impl/room.rs b/crates/call/src/call_impl/room.rs index 8bb10917fe..4cd0be1ebd 100644 --- a/crates/call/src/call_impl/room.rs +++ b/crates/call/src/call_impl/room.rs @@ -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 { diff --git a/crates/livekit_client/src/livekit_client.rs b/crates/livekit_client/src/livekit_client.rs index 86000980e8..1bd98517d5 100644 --- a/crates/livekit_client/src/livekit_client.rs +++ b/crates/livekit_client/src/livekit_client.rs @@ -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 { diff --git a/crates/livekit_client/src/mock_client/publication.rs b/crates/livekit_client/src/mock_client/publication.rs index 70ef3b7c26..8c6494e03a 100644 --- a/crates/livekit_client/src/mock_client/publication.rs +++ b/crates/livekit_client/src/mock_client/publication.rs @@ -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), - } - } -} diff --git a/crates/livekit_client/src/mock_client/track.rs b/crates/livekit_client/src/mock_client/track.rs index 61909370aa..e1565e8d71 100644 --- a/crates/livekit_client/src/mock_client/track.rs +++ b/crates/livekit_client/src/mock_client/track.rs @@ -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) {} }