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.

-------------

Commit messages:
 - 8264737: JavaFX media stream stops playing after reconnecting via Remote 
Desktop

Changes: https://git.openjdk.java.net/jfx/pull/479/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jfx&pr=479&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8264737
  Stats: 344 lines in 5 files changed: 341 ins; 0 del; 3 mod
  Patch: https://git.openjdk.java.net/jfx/pull/479.diff
  Fetch: git fetch https://git.openjdk.java.net/jfx pull/479/head:pull/479

PR: https://git.openjdk.java.net/jfx/pull/479

Reply via email to