스트림 라우팅을 위한 디바이스 엔드포인트 가져오기

Windows 7에서는 Media Foundation, DirectSound 및 Wave API와 같은 핵심 오디오 API를 사용하는 고급 플랫폼 API에서 기존 디바이스에서 새 기본 오디오 엔드포인트로 스트림 전환을 처리하여 스트림 라우팅 기능을 구현합니다. 이러한 API를 사용하는 미디어 애플리케이션(예: IMMDevice 개체에서 IDirectSound 또는 IBaseFilter 개체를 활성화하는 애플리케이션)은 원본을 수정하지 않고 스트림 라우팅 동작을 사용합니다.

상위 수준 API는 IMMDeviceEnumerator::GetDefaultAudioEndpoint를 통해 가져온 디바이스 엔드포인트에 대한 스트림 라우팅을 구현합니다. 애플리케이션이 기본 디바이스로 스트림하는 경우 스트림 라우팅 기능은 정의된 대로 작동합니다. 스트림은 기본 디바이스와 동일한 경우에도 다른 메커니즘에 의해 검색되는 경우 새 디바이스로 전환되지 않습니다.

Core Audio API를 직접 사용하는 미디어 애플리케이션(WASAPI 클라이언트)은 렌더링 또는 캡처 디바이스에 대한 사용자 지정 스트림 라우팅 구현을 제공할 수 있습니다. WASAPI 클라이언트는 기본 디바이스로 설정된 디바이스에서 열리는 스트림으로 제한하여 상위 수준 API에서 제공하는 불충분성을 복제할 수 있습니다. 기본 디바이스의 엔드포인트에 대한 참조를 얻으려면 클라이언트가 IMMDeviceEnumerator::GetDefaultAudioEndpoint를 호출해야 합니다. 이 호출에서 클라이언트는 dataFlow 매개 변수를 지정하여 렌더링 기본 디바이스에 대한 포인터가 필요한지 또는 캡처 기본 디바이스에 대한 포인터가 필요한지 여부를 나타내야 합니다. 또한 클라이언트는 ERole 특성(eConsole 또는 eCommunications)의 엔드포인트에 대한 적절한 역할을 지정해야 합니다. eMultimedia를 사용하지 마세요.

애플리케이션이 다른 디바이스로 스트림하는 경우 애플리케이션은 엔드포인트 ID 문자열을 지정하여( IMMDeviceEnumerator::GetDevice를 호출하여) 디바이스를 가져올 수 있습니다.

디바이스가 식별되면 WASAPI 클라이언트는 디바이스에 대해 전송된 디바이스 및 오디오 세션 알림을 처리하여 스트림 라우팅에 대한 구현을 제공할 수 있습니다. 이러한 알림에 대한 자세한 내용은 스트림 라우팅에 대한 관련 알림을 참조하세요.

MMDevice API 정보

WASAPI 정보

스트림 라우팅