LiveKit doesn’t currently support adjusting the volume of human participant audio streams on the server side. Instead, volume control happens on the client side using SDK methods like setVolume(), which you can apply to individual tracks or participants. Just a heads-up—these changes only affect what you hear locally and don’t change the original audio stream sent to the server.
If you’re working with AI-generated audio, there’s a bit more flexibility! You can modify the volume on the server side by using custom agent logic, where audio frames are processed in the agent’s pipeline before reaching participants.
Please feel free to reach out if you’d like more guidance on how to implement client-side volume control or set up agent-based audio processing. I’m here to help! Sources:
Sources/LiveKit/Audio/MixerEngineObserver.swift |
Runtime/Scripts/Room/Participant/RemoteParticipant.cs |
Subscribing to tracks | LiveKit Docs |
Pipeline nodes and hooks | LiveKit Docs |
example/sample.ts