none
关于CoreAudio的让人糊涂的地方 RRS feed

  • 问题

  • 非常奇怪。
    文档上说,IMMDevice::Activate方法是"Applies to:desktop apps only".
    但是IAudioEndpointVolum接口却又是“Applies to: desktop apps | Metro style apps”
    如下代码怎么解释?
    IMMDevice *pDevice=NULL;
    hr=pDevice->Activate(__uuidof(IAudioEndpointVolume),CLSCTX_ALL,NULL,(void **)(&pVolumeAPI)); 
    如果IMMDevice::Activate不能用, 怎么获取IAudioEndpointVolume接口?
    2012年5月26日 8:55

答案

  • 您好!

    文档本身没错。你不能在WinRT环境下,使用IMMDevice接口。
    在WinRT环境下,你可以用以下WinRT API获取Audio Endpoint。

    Platform::String^ id = Windows::Media::Devices::MediaDevice::GetDefaultAudioCaptureId(Windows::Media::Devices::AudioDeviceRole::Console ); 
    Microsoft::WRL::ComPtr<IAudioClient> pAudioClient = NULL; 
    ActivateAudioInterface( id->Data(), __uuidof( IAudioClient ), (void**)&pAudioClient );


    Best wishes,


    Robin [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2012年5月26日 9:29
    版主