Greetings,
first of all I absolutely agree with your proposal of chosing a playback device in the same manner as the recording device!
Now for the problems: I get masses of internal errors, as my CI machines have no headphones plugged in. See below. I really would need some way to check for validity of the main audio device at least initially...
Those errors spam my log:
MMDevApiOpenPlayback: Device init failed: 0x80070490
Failed to open the audio device
(and another lots of hundreds when trying to access the device)
and lots of those:
Failed to open the audio device
[07:34:46][Step 2/6] An internal OpenAL call failed in SoundSource.cpp(37).
[07:34:46][Step 2/6] Expression:
[07:34:46][Step 2/6] alGenSources(1, &m_source)
[07:34:46][Step 2/6] Error description:
[07:34:46][Step 2/6] AL_INVALID_OPERATION
[07:34:46][Step 2/6] The specified operation is not allowed in the current state.
[07:34:46][Step 2/6]
[07:34:46][Step 2/6] An internal OpenAL call failed in SoundSource.cpp(38).
[07:34:46][Step 2/6] Expression:
[07:34:46][Step 2/6] alSourcei(m_source, AL_BUFFER, 0)
[07:34:46][Step 2/6] Error description:
[07:34:46][Step 2/6] AL_INVALID_OPERATION
[07:34:46][Step 2/6] The specified operation is not allowed in the current state.
[07:34:46][Step 2/6]
[07:34:46][Step 2/6] An internal OpenAL call failed in SoundBuffer.cpp(46).
[07:34:46][Step 2/6] Expression:
[07:34:46][Step 2/6] alGenBuffers(1, &m_buffer)
[07:34:46][Step 2/6] Error description:
[07:34:46][Step 2/6] AL_INVALID_OPERATION
[07:34:46][Step 2/6] The specified operation is not allowed in the current state.
[07:34:46][Step 2/6]
[07:34:46][Step 2/6] An internal OpenAL call failed in SoundSource.cpp(103).
[07:34:46][Step 2/6] Expression:
[07:34:46][Step 2/6] alSourcef(m_source, AL_REFERENCE_DISTANCE, distance)
[07:34:46][Step 2/6] Error description:
[07:34:46][Step 2/6] AL_INVALID_OPERATION
[07:34:46][Step 2/6] The specified operation is not allowed in the current state.
:
:
:
(and another 400 of those)