On Sat, 24 Apr 2021 02:23:19 GMT, Alexander Matveev <almat...@openjdk.org> wrote:
> Remote Desktop will change default audio device when connecting or > disconnecting to it's own audio device. Also, when remote desktop is > disconnect, then remote desktop default audio device is removed and system > default device is not restored until user logs back to computer. So, after > remote desktop is disconnected, then system left without any default audio > devices. > > To fix this we will unload DirectSound when audio device is gone and will > continue playback by throwing away audio data. Once we receive notification > that default audio device is back, we will load it and continue playback via > this device. > > Loading device done in loop, since it is not always available right after > notification, but will be after very short period of time. > > Tested by connecting/disconnecting remote desktop and switching between > remote and normal desktop. In second case audio will switch between remote or > speakers. > > Since audio device is gone and not restored after disconnect, there will be > no audio on machine local speakers, until user logs back again. Audio device notification failed in case when CoInitialize() was not called. It worked in some cases, since other parts of JavaFX already initialized it. Fixed by adding CoInitialize() call before registering device notification. Also, removed unused header left from debug printf. ------------- PR: https://git.openjdk.java.net/jfx/pull/479