2016-08-05 12 views
0

WASAPI ActivateAudioInterfaceAsync() 함수에 대한 문서를보고 있는데 DEVINTERFACE_AUDIO_CAPTUREdeviceInterfacePath으로 전달하여 기본 오디오 캡처 장치에서 인터페이스를 활성화하는 것에 대해 언급합니다. 그것은 MediaDevice::GetDefaultAudioCaptureId(AudioDeviceRole::Default) 호출 이후 좋은 연습처럼 보입니다. 그렇지 않으면 deviceInterfacePath 매개 변수 (WASAPI 샘플에서 사용됨)를 동기화하는 것입니다. 일부 경우에는 몇 초가 걸릴 수도 있지만 UI 스레드를 차단하고 잠재적으로 귀하의 앱이 죽을 것입니다.DEVINTERFACE_AUDIO_CAPTURE를 ActivateAudioInterfaceAsync에 전달하려면 어떻게해야합니까?

GU32를 LPCWSTR deviceInterfacePath에서 ActivateAudioInterfaceAsync으로 전달하는 방법에 대해서는 문서가 샘플을 표시하지 않습니다.

어떻게하면됩니까? I가 코드 관리 어떤

답변

0

:

#include <initguid.h> 
#include <mmdeviceapi.h> 

초기화 :

ComPtr<IActivateAudioInterfaceAsyncOperation> asyncOp; /*needed to get ActivateCompleted callback*/ 

PWSTR audioCaptureGuidString; 
StringFromIID(DEVINTERFACE_AUDIO_CAPTURE, &audioCaptureGuidString); 

// This call must be made on the main UI thread. Async operation will call back to 
// IActivateAudioInterfaceCompletionHandler::ActivateCompleted 
HRESULT hr = ActivateAudioInterfaceAsync(
    audioCaptureGuidString, /* deviceInterfacePath (default capture device) */ 
    __uuidof(IAudioClient2), /*riid*/ 
    nullptr, /*activationParams*/ 
    this, /*completionHandler*/ 
    &asyncOp /*createAsync*/); 

CoTaskMemFree(audioCaptureGuidString); 

// Windows holds a reference to the application's IActivateAudioInterfaceCompletionHandler interface 
// until the operation is complete and the application releases the IActivateAudioInterfaceAsyncOperation interface 
+0

음, 자기에 대한 좋은 시도가 질문에 대답

가 추가 포함되어 있습니다. 질문 자체는 구약이지만 현재의 형태입니다. –

+0

자세한 내용은 [here] (http://meta.stackoverflow.com/a/330571/1413395)를 참조하십시오. –

+0

πάντα ῥε you 무슨 뜻인지 확실하지 않습니다. 어떻게하는지 보여주는 샘플이 없기 때문에 bingoogle에서 답을 얻을 수있는 기본적인 질문은 아닙니다. 대답은 C++ 및 COM 세계에 정통한 사람이라면 쉽게 대답 할 수 있지만 모든 사람이 전문가는 아닙니다. 포인트를 얻으려는 질문을하는 것이 아니라,이 호출을위한 샘플이 없기 때문에 누가 어떻게하는지 알아낼 수있는 다른 사람들을 돕기 위해 쉽게 검색 할 수있는 솔루션이 아닙니다. 다른 사람들을 돕고 자하는 사람들을 조롱하는 대신에 당신 스스로 유용한 것을 해보십시오. –