freezing-jelly-85538
07/23/2025, 6:21 PMtall-airline-16756
07/23/2025, 6:22 PMtall-airline-16756
07/23/2025, 6:23 PMsetSubscribed method sends an UpdateSubscription message to the server. Similarly, in the Flutter SDK, the unsubscribe() method sends a subscription update to the server.
• Disabling: This can be done natively on the client without server negotiation. When a track is disabled, the participant will not receive any new data for that track. If the track is re-enabled, new data will be received again. This is useful for optimizing bandwidth consumption, especially under unstable network conditions.
If your goal is to block incoming audio during unstable network conditions without relying on outbound messages, you can use the disable functionality instead of unsubscribing.
Sources: Subscribing to tracks | LiveKit Docs | Subscribing to tracks | LiveKit Docs | src/room/track/RemoteTrackPublication.ts | lib/src/publication/remote.dartfreezing-jelly-85538
07/23/2025, 6:26 PMtall-airline-16756
07/23/2025, 6:27 PMsetMicrophoneMute() in the Android SDK), empty audio frames are still sent to other participants. Think of it like sending a blank postcard - the connection stays open, but no actual sound comes through. ### Track-Level Muting - When you mute at the track level (using the TrackPublication.muted property), data transmission stops entirely. This is like putting your conversation on pause - it's more efficient and helps save on data. ### Server-Side Behavior - The cool thing is, when a track is muted, LiveKit's server actually sends a few silence frames to make sure everything stays smooth. It's like making sure the line doesn't go completely dead during a phone call. Pro tip: If you're looking to be smart about data usage, track-level muting is definitely the way to go. It's like having a more precise volume control for your conversation. Sources: stream_audio.py | Publishing tracks | LiveKit Docs | pkg/rtc/room_test.go | livekit-android-sdk/src/main/java/io/livekit/android/room/Room.ktfreezing-jelly-85538
07/23/2025, 6:29 PMtall-airline-16756
07/23/2025, 6:30 PMTrackMuted event to everyone in the room. Think of it like telling everyone in a group chat that someone's mic is now off - super helpful for keeping everyone in sync. Now, if you're just wanting to mute a track for yourself (like personal listening preferences), that's even easier. These operations happen right on your device without needing to chat with the server. Pretty neat, right? Got more questions about how this all works? I'm totally here to help - just ask!freezing-jelly-85538
07/23/2025, 6:39 PMtall-airline-16756
07/23/2025, 6:40 PMsetMicrophoneMute() function doesn't disconnect you, but instead sends completely silent audio frames. It's like whispering instead of hanging up the phone. This approach is pretty consistent across different platforms. Whether you're using Android, Python, or other SDKs, muting means you're still connected, just sending "quiet" data. On the server side, LiveKit keeps things smooth by sending blank frames, which helps prevent any weird audio glitches when you unmute. Got questions? I'm totally here to help! Just shoot me a message, and I'll be happy to explain more. 😊 Sources: livekit-android-sdk/src/main/java/io/livekit/android/room/track/LocalTrackP... | stream_audio.py | pkg/rtc/room_test.go | Publishing tracks | LiveKit Docsfreezing-jelly-85538
07/23/2025, 6:41 PMtall-airline-16756
07/23/2025, 6:43 PM