디바이스 역할 작업

MMDevice API는 디바이스 역할을 지원합니다. ERole 열거형은 MMDevice API에서 지원하는 디바이스 역할을 정의합니다.

참고

MMDevice API는 디바이스 역할을 지원하지만 Windows Vista의 사용자 인터페이스는 이 기능에 대한 지원을 구현하지 않습니다.

 

애플리케이션은 MMDevice API를 사용하여 IMMDeviceEnumerator::GetDefaultAudioEndpointIMMNotificationClient::OnDefaultDeviceChanged 메서드를 통해 디바이스 역할을 지원할 수 있습니다. 그러나 Windows Vista의 사용자 인터페이스는 개별 역할을 다른 디바이스에 할당하는 것을 지원하지 않습니다. Windows Vista에서 사용자 인터페이스를 사용하면 렌더링할 기본 오디오 디바이스와 캡처할 기본 오디오 디바이스를 선택할 수 있습니다. 사용자가 기본 렌더링 또는 캡처 디바이스를 선택하면 시스템은 세 가지 디바이스 역할(eConsole, eMultimedia 및 eCommunications)을 모두 해당 디바이스에 할당합니다. 애플리케이션은 오디오 엔드포인트 디바이스에 할당된 역할을 변경할 수 없습니다. 운영 체제에서는 사용자만 디바이스 역할을 할당할 수 있습니다.

클라이언트는 오디오 엔드포인트 디바이스에 역할을 할당할 때 변경이 발생할 때마다 MMDevice API에서 알림을 받도록 자신을 등록할 수 있습니다. 역할이 한 디바이스에서 다른 디바이스로 이동하면 클라이언트는 동일한 디바이스를 통해 스트림을 계속 재생(또는 기록)할지 아니면 스트림을 다른 디바이스로 전환할지 선택할 수 있습니다. 기본적으로 스트림은 원래 디바이스를 통해 계속 재생되거나 기록됩니다. Windows Vista에서 스트림을 다른 디바이스로 전환하려면 클라이언트가 원래 디바이스에서 스트림을 삭제하고 새 디바이스에서 대체 스트림을 만들어야 합니다. Windows 7에서 클라이언트는 재생 또는 캡처 세션을 중단하지 않고 원활한 스위치를 구현하기 위해 새 알림을 수신 대기할 수 있습니다. 자세한 내용은 스트림 라우팅을 참조하세요.

Windows Vista를 사용하여 애플리케이션을 테스트하려는 경우 테스트 환경을 설정하여 사용자가 개별 디바이스 역할을 다른 디바이스에 할당할 수 있을 때 애플리케이션이 예상대로 작동하는지 확인할 수 있습니다. 자세한 내용을 알아보려면 uaa@microsoft.com으로 전자 메일을 보내세요.

통신 디바이스

Windows 7 사용자 인터페이스에는 통신 디바이스를 추가하는 기능이 있습니다. 사운드 제어판을 사용하면 사용자가 오디오 스트림을 렌더링하고 캡처하기 위해 각각 기본 통신 디바이스를 선택할 수 있습니다. 기본적으로 새 디바이스가 컴퓨터에 연결되면 운영 체제는 자동 역할 검색을 수행하고 디바이스가 전자 통신 역할에 적합한지 여부를 확인합니다. 통신 디바이스를 대상으로 하여 핵심 오디오 API를 사용하여 PC-휴대폰 통신 솔루션을 구현하는 애플리케이션을 개발할 수 있습니다. 예를 들어 VoIP 애플리케이션은 음성 입력 및 출력 스트림을 eCommunications 역할을 사용하여 기본 캡처 및 렌더링 엔드포인트 디바이스에 할당할 수 있습니다. 다른 스트림과 마찬가지로 통신 애플리케이션은 IMMDeviceEnumerator::GetDefaultAudioEndpoint를 호출하여 통신 디바이스의 엔드포인트에 대한 참조를 가져와야 합니다. 이 호출에서 애플리케이션은 Role 매개 변수에서 eCommunications을 지정해야 합니다. 통신 디바이스에서 열린 스트림의 WASAPI 스트림 작업은 다른 오디오 스트림과 유사합니다. 통신 애플리케이션은 디바이스 엔드포인트에서 알림을 처리하여 더킹과 같은 동작을 구현하여 사용자 환경을 향상시킬 수 있습니다. 자세한 내용은 통신 디바이스 사용을 참조하세요.

자동 디바이스 역할 검색

컴퓨터에 기본 렌더링 디바이스, 스피커 및 기본 캡처 디바이스인 마이크가 있는 시나리오를 고려합니다. 사용자가 USB 헤드셋을 컴퓨터에 연결합니다. 적절한 드라이버가 설치되면 운영 체제는 새 오디오 디바이스에 할당할 역할을 검색하려고 시도합니다.

Windows 7에서는 오디오 디바이스에 적합한 역할을 결정하기 위해 디바이스 역할 검색 기능이 크게 향상되었습니다. 모든 오디오 디바이스에는 시스템에서 디바이스 사용 방법을 결정하는 데 도움이 되는 디바이스 OEM에 의해 채워진 구성 설정 집합이 포함되어 있습니다. 이러한 설정에는 디바이스 유형인 오디오 잭의 물리적 위치, 잭 하위 유형 및 감지 기능과 같은 정보가 포함되므로 시스템에서 디바이스가 연결되어 있는지 여부를 확인할 수 있습니다. 디바이스에서 이러한 값을 검색하면 운영 체제에서 디바이스에 할당할 역할을 결정합니다. 이 시나리오에서 시스템은 USB 헤드셋 디바이스를 쿼리하고, 자동 역할 검색을 수행했으며, 디바이스가 통신 디바이스에 가장 적합하다고 결정했습니다.

또한 애플리케이션은 핵심 오디오 API를 사용하여 잭 정보를 가져올 수 있습니다. 자세한 내용은 IKsJackDescriptionIKsJackDescription2를 참조하세요.

디바이스 역할