I've been trying to get WASAPI audio output working for our app as Directsound output was very glitchy post the new audio stack.
All seems to work great with WASAPI however I need to able to set the volume level independently for individual audio sessions / streams for crossfading however I'm having problems controlling the volume levels of a shared mode audio session / stream. specifically,
Doesn't seem to work under Wine i.e.
HRESULT hr;
hr=audioClient_->GetService(IID_ISimpleAudioVolume,(void**)&simpleAudioVolume_);
if (SUCCESS(hr))
hr=simpleAudioVolume_->SetMasterVolume(0.1,NULL);
returns success but does not change the volume level though interestingly
HRESULT hr;
hr=audioClient_->GetService(IID_ISimpleAudioVolume,(void**)&simpleAudioVolume_);
if (SUCCESS(hr))
hr=simpleAudioVolume_->SetMute(TRUE,NULL);
does work and mute the volume.
I've also tried usingsthe IAudioStreamVolume interface to control the volume again to no avail.
Does anyone have any experience of these interfaces or know equivalent interfaces to use instead working I've tested on :
Ubuntu 10.04, 11.10
Wine 1.4 , 1.5 , 1.5.2
PulseAudio 0.9.21 , 1.0 , no pulse audio
(and windows 7 where the code works fine)