If you're going down the path of investigating proper handling for audio device changes, I think our current code that tracks audio device connection/disconnection could do with a bit of love. Specifically:
- Find an alternative way to enumerate audio devices at startup that doesn't require DirectShow (ie. replace -->this<--)
- When an audio device is removed, detect whether that device was being used as the audio renderer for the playing media. Only stop playback if the device is being used. It might be possible to detect this better with a completely different method such as with DirectShow graph events (eg. this one).
If i'm not wrong the latest code didn't handle such change @Rick164 right ?
It could be nice to improve it, like this it should solve some issue like detected by @Helios61 -> HERE -< or maybe not lol.
The @Helios61 case is when the graph is builded, the audio renderer (Default DirectSound Device) can't be added because it is no more in "FilterCollection AudioRenderers" in "Filters.AudioRenderers" because it was removed then added back triggered by DRRC.
But it will hard to debug this when we can't reproduce it lol