ActivateAudioInterfaceAsync 함수(mmdeviceapi.h)
Windows 스토어 앱이 WASAPI 제품군의 기존 COM(구성 요소 개체 모델) 인터페이스에 액세스할 수 있도록 합니다.
통사론
HRESULT ActivateAudioInterfaceAsync(
[in] LPCWSTR deviceInterfacePath,
[in] REFIID riid,
[in] PROPVARIANT *activationParams,
[in] IActivateAudioInterfaceCompletionHandler *completionHandler,
IActivateAudioInterfaceAsyncOperation **activationOperation
);
매개 변수
[in] deviceInterfacePath
오디오 디바이스의 디바이스 인터페이스 ID입니다. 이는 일반적으로 DeviceInformation 개체 또는 MediaDevice 클래스의 메서드 중 하나에서 검색됩니다.
GUID DEVINTERFACE_AUDIO_CAPTURE 및 DEVINTERFACE_AUDIO_RENDER 각각 기본 오디오 캡처 및 렌더링 디바이스를 나타냅니다. StringFromIID 호출하여 이러한 GUID 중 하나를 이 인수에 사용할 LPCWSTR 변환합니다.
프로세스 루프백 캡처를 위해 오디오 인터페이스를 활성화하는 AUDIOCLIENT_ACTIVATION_TYPE_PROCESS_LOOPBACK 지정합니다. 프로세스 루프백 캡처 시나리오를 보여 주는 샘플 코드는 Application Loopback API 캡처 샘플참조하세요.
[in] riid
IAudioClient같은 WASAPI 패밀리의 COM 인터페이스 IID입니다.
[in] activationParams
인터페이스별 활성화 매개 변수입니다. 자세한 내용은 IMMDevice::ActivatepActivationParams 매개 변수를 참조하세요.
Windows 10 빌드 20438부터 지정된 프로세스 ID와 연결된 오디오 스트림을 포함하거나 제외하도록 인터페이스를 활성화하는 AUDIOCLIENT_ACTIVATION_PARAMS 지정할 수 있습니다.
[in] completionHandler
활성화 프로시저의 결과를 사용할 수 있을 때 Windows에서 호출하는 호출자가 구현하는 인터페이스입니다.
activationOperation
요청된 WASAPI 인터페이스를 활성화하는 비동기 작업을 나타내는 IActivateAudioInterfaceAsyncOperation 인터페이스를 반환합니다.
반환 값
이 함수는 HRESULT반환합니다. 가능한 값은 다음 표에 있는 값을 포함하지만 제한되지는 않습니다.
반환 코드 | 묘사 |
---|---|
|
기본 개체 및 비동기 작업이 성공적으로 생성되었습니다. |
|
Windows 10 이전 버전의 Windows에서는 잘못된 COM 아파트에서 함수가 호출되거나 전달된 IActivateAudioInterfaceCompletionHandler agile 개체에 구현되지 않은 경우(자유 스레드 마샬러 집계) 이 오류가 발생할 수 있습니다. |
발언
이 함수를 사용하면 Windows 스토어 앱이
많은 구현의 경우 시스템에서 사용자에게 대화 상자를 표시할 수 있도록 애플리케이션이 기본 UI 스레드에서 이 함수를 호출하여 WASAPI 제품군에서 COM 인터페이스를 활성화해야 합니다. 애플리케이션은 completionHandler통해 IActivateAudioInterfaceCompletionHandler 콜백 COM 인터페이스를 전달합니다. Windows는 활성화 결과를 사용할 수 있는 경우 애플리케이션의 IActivateAudioInterfaceCompletionHandler 인터페이스의 메서드를 COM MTA(다중 스레드 아파트)의 작업자 스레드에서 호출합니다. 그런 다음 애플리케이션은 IActivateAudioInterfaceAsyncOperation 인터페이스에서 메서드를 호출하여 결과 코드와 요청된 WASAPI 인터페이스를 검색할 수 있습니다. 명시적으로 안전하므로 기본 UI 스레드에서 이 함수를 호출할 필요가 없는 일부 활성화가 있습니다. 이러한 명시적으로 안전한 활성화는 다음과 같습니다.
- 오디오 렌더링 디바이스를 지정하는 deviceInterfacePath 및 IAudioClient 인터페이스를 지정하는 riid 사용하여 ActivateAudioInterfaceAsync 호출합니다.
- 오디오 렌더링 디바이스를 지정하는 deviceInterfacePath 및 IAudioEndpointVolume 인터페이스를 지정하는 riid 사용하여 ActivateAudioInterfaceAsync 호출합니다.
- 세션 0 서비스에서 ActivateAudioInterfaceAsync 호출합니다. 자세한 내용은 Services참조하세요.
애플리케이션은 완료 처리기 콜백이 실행될 때까지 IActivateAudioInterfaceCompletionHandler 구현하는 개체를 해제해서는 안 됩니다.
동의 프롬프트를 표시할 수 있도록 기본 UI 스레드에서 ActivateAudioInterfaceAsync 호출해야 합니다. 동의 프롬프트를 표시할 수 없는 경우 사용자는 앱에 대한 디바이스 액세스 권한을 부여할 수 없습니다.
Windows 10 이전 버전의 Windows에서는 오디오 캡처를 위해 디바이스를 열 때
요구 사항
요구 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 8 [데스크톱 앱 | UWP 앱] |
지원되는 최소 서버 | Windows Server 2012 [데스크톱 앱 | UWP 앱] |
대상 플랫폼 | Windows |
헤더 | mmdeviceapi.h(Mmdevapi.idl 포함) |
라이브러리 | Mmdevapi.lib |
DLL | Mmdevapi.dll |
IRQL |
아니요 |
참고 항목
IActivateAudioInterfaceAsyncOperation