rodio icon indicating copy to clipboard operation
rodio copied to clipboard

Rodio does not respect macOS output device selection.

Open dvtkrlbs opened this issue 3 years ago • 7 comments

When i change the output device rodio continues to play the audio on old device. Screen Shot 2020-10-07 at 08 01 13

dvtkrlbs avatar Oct 07 '20 05:10 dvtkrlbs

Some weird thing here too (MacOS 10.15.6), with the new version (0.12) sink work, play_raw not, sometime Result return the error "no device" and sometime there is no error but no sound either.

Also, if i declare:

let (_stream, stream_handle) = OutputStream::try_default().unwrap();

just before i spawn a thread and append a source to a sink in the thread, there is no error but no sound either.

All is fine if i downgrade the rodio version back to 0.11.

I've no time this day and i'll investigate next week by reading diff between version 0.11 and 0.12, let me know if you want me to open a new topic with more detail.

Edit: I just noticed that sinks also need a thread :: sleep to work properly, without it there is no sound and no errors. It's weird because it forces us to define a minimum duration for each sink played and i don't think this is the expected behavior for it.

Akirami avatar Oct 12 '20 02:10 Akirami

Hello! I wonder if there was any progress on this one? I'm also running into this issue.

toothbrush avatar Jun 16 '21 23:06 toothbrush

@dvtkrlbs: I don't think rodio will automatically re-create the OutputStream when the default system device is changed, that's probably something you'd have to check for and do yourself, perhaps by polling cpal::available_hosts().

tuzz avatar Aug 06 '21 10:08 tuzz

I have messed around with cpal, and was able to get this to work. Unfortunately, I am no where near familiar enough with rust, audio and osx to make a proper fix. The issue seems to be that cpal generates its AudioUnit with "HalOutput" device from coreaudio, which is related to a specific audio device. If this is changed to "DefaultOutput", librespot starts responding when i change audio output device. Screenshot 2022-02-20 at 19 36 53

I guess this should be an issue for the cpal project and address how they deal with the osx default output.

kaihagseth avatar Feb 20 '22 18:02 kaihagseth

PRs (to cpal) welcome!

est31 avatar Feb 20 '22 20:02 est31

This issue should be resolved now, through the fix in cpal just above.

kaihagseth avatar Feb 28 '22 17:02 kaihagseth

I'll leave this open until a new cpal release with the fix is out.

est31 avatar Feb 28 '22 18:02 est31