ShayBox / Mon2Cam

Workaround for multi-monitor Discord screensharing
MIT License
338 stars 33 forks source link

Fixed the audio feature #28

Closed botiapa closed 4 years ago

botiapa commented 4 years ago

I wrote the changes according to the discussion I had with @ShayBox. Could you please test it? I also tried to clean up the code a little bit, because it's getting quite big.

What do you think?

ShayBox commented 4 years ago

It's creating more of these every time I run it image It created the microphone sink as an output device image

It's working other then that, I believe you have to disable/delete the loopback devices after creating the sinks, pulse just makes them by default Video showing it running

brightcloudy commented 4 years ago

There is an alternative way to do this which I thought about the other day which can be implemented using the pulseaudio module module-combine-sink. I've tested this on my local system, and it does work to essentially allow the application audio to be 'copied' onto both a null sink that's created as well as the sink which is the output device that the application audio would already go out of. In total, this involves creating one null sink, one loopback (from the microphone source to the null sink), and one combine-sink, which is linked to the null sink and the normal output device. This way, Discord's WebRTC voice recording stream can be switched to the null sink, while the application audio's playback stream is switched to the combine-sink, resulting in Discord capturing audio from both the application as well as the microphone, while the microphone isn't looped back to an actual output device.

botiapa commented 4 years ago

Thanks for telling me about this module, I'll look into this.

botiapa commented 4 years ago

This is implemented in the wayland update therefore unnecessary.