I need to be able to play a single local audio source from a RasPi over multiple USB headphones. I need to have independent control of which headphones are playing (1 at a time, 2 at a time, … , all at a time).
I have been working with PulseAudio over the command prompt and have been able to get the audio to play over all the headsets at once, however I am lost on how I can turn headphones on/off independently WHILE the music is still playing. I'm not entirely sure its possible, hence why I am asking here.
Some ideas I've had:
(A) Create groups of sinks for each case of headphones on/off and change input to different source groups on the fly
(B) Have audio playing over all headphones at once, but adjust volume to 0 on the sinks (headphones) that need to be off
Note: many examples I have seen involve controlling a music stream attached to an IP address. I do not wish to do this, I wish to have audio files locally on the RasPi.
Any help would be appreciated, I am rather new to this.
Best Answer
If there is no other audio output to the headphones besides this single stream, you can use
module-combine-sink
to set up a combination sink for all the headphones, and then you can mute the headphone sinks themselves as needed.List all sinks:
Make a combined sink (of course with the sink names you need instead of example names):
Then play the stream on the combined sink, and mute
or unmute
as required.
If there is other audio output, I guess one can put a mutable
null-sink
between the combined sink and each headphone sink.