다음을 통해 공유


IMMDeviceEnumerator::GetDefaultAudioEndpoint 메서드(mmdeviceapi.h)

GetDefaultAudioEndpoint 메서드는 지정된 데이터 흐름 방향 및 역할에 대한 기본 오디오 엔드포인트를 검색합니다.

구문

HRESULT GetDefaultAudioEndpoint(
  [in]  EDataFlow dataFlow,
  [in]  ERole     role,
  [out] IMMDevice **ppEndpoint
);

매개 변수

[in] dataFlow

엔드포인트 디바이스의 데이터 흐름 방향입니다. 호출자는 이 매개 변수를 다음 두 EDataFlow 열거형 값 중 하나로 설정해야 합니다.

eRender

eCapture

렌더링 디바이스의 데이터 흐름 방향은 eRender입니다. 캡처 디바이스의 데이터 흐름 방향은 eCapture입니다.

[in] role

엔드포인트 디바이스의 역할입니다. 호출자는 이 매개 변수를 다음 ERole 열거형 값 중 하나로 설정해야 합니다.

eConsole

eMultimedia

eCommunications

자세한 내용은 설명 부분을 참조하세요.

[out] ppEndpoint

메서드가 기본 오디오 엔드포인트 디바이스에 대한 엔드포인트 개체의 IMMDevice 인터페이스 주소를 쓰는 포인터 변수에 대한 포인터입니다. 이 메서드를 통해 호출자는 인터페이스에 대해 계산된 참조를 가져옵니다. 호출자는 인터페이스의 Release 메서드를 호출하여 더 이상 필요하지 않은 경우 인터페이스를 해제 할 책임이 있습니다. GetDefaultAudioEndpoint 호출이 실패하면 *ppDeviceNULL입니다.

반환 값

메서드가 성공하면 S_OK가 반환되고, 실패할 경우 가능한 반환 코드에는 다음 표에 표시된 값이 포함되지만 이에 국한되지는 않습니다.

반환 코드 설명
E_POINTER
매개 변수 ppDeviceNULL입니다.
E_INVALIDARG
매개 변수 dataFlow 또는 역할이 범위를 벗어났습니다.
E_NOTFOUND
사용할 수 있는 디바이스가 없습니다.
E_OUTOFMEMORY
메모리가 부족합니다.

설명

참고

Windows Vista에서 MMDevice API는 디바이스 역할을 지원하지만 시스템에서 제공하는 사용자 인터페이스 프로그램은 지원하지 않습니다. Windows Vista의 사용자 인터페이스를 사용하면 렌더링할 기본 오디오 디바이스와 캡처할 기본 오디오 디바이스를 선택할 수 있습니다. 사용자가 기본 렌더링 또는 캡처 디바이스를 변경하면 시스템은 세 가지 디바이스 역할(eConsole, eMultimedia 및 eCommunications)을 모두 해당 디바이스에 할당합니다. 따라서 GetDefaultAudioEndpoint역할 매개 변수로 표시되는 역할에 관계없이 항상 기본 렌더링 또는 캡처 디바이스를 선택합니다. 이후 버전의 Windows에서는 사용자 인터페이스를 통해 사용자가 개별 역할을 다른 디바이스에 할당할 수 있습니다. 이 경우 GetDefaultAudioEndpoint 에서 렌더링 또는 캡처 디바이스를 선택하는 것은 역할 매개 변수에 따라 달라질 수 있습니다. 따라서 Windows Vista에서 실행되도록 개발된 오디오 애플리케이션의 동작은 향후 버전의 Windows에서 실행될 때 변경될 수 있습니다. 자세한 내용은 Windows Vista의 디바이스 역할을 참조하세요.

이 메서드는 지정된 데이터 흐름 방향(렌더링 또는 캡처) 및 역할에 대한 기본 엔드포인트 디바이스를 검색합니다. 예를 들어 클라이언트는 다음 호출을 수행하여 기본 콘솔 재생 디바이스를 가져올 수 있습니다.


  hr = pDevEnum->GetDefaultAudioEndpoint(
                   eRender, eConsole, &pDeviceOut);

앞의 코드 조각에서 변수 hrHRESULT 형식이고 pDevEnumIMMDeviceEnumerator 인터페이스에 대한 포인터이고 pDeviceOutIMMDevice 인터페이스에 대한 포인터입니다.

Windows 시스템에는 데스크톱 스피커, 고화질 헤드폰, 데스크톱 마이크, 스피커와 마이크가 있는 헤드셋, 고화질 멀티채널 스피커와 같은 오디오 엔드포인트 디바이스의 일부 조합이 포함될 수 있습니다. 사용자는 디바이스에 적절한 역할을 할당할 수 있습니다. 예를 들어 음성 통신 스트림을 관리하는 애플리케이션은 GetDefaultAudioEndpoint 를 호출하여 지정된 렌더링을 식별하고 해당 역할에 대한 디바이스를 캡처할 수 있습니다.

단일 렌더링 또는 캡처 디바이스만 사용할 수 있는 경우 시스템은 항상 세 가지 렌더링 또는 캡처 역할을 모두 해당 디바이스에 할당합니다. 메서드가 지정된 역할에 대한 렌더링 또는 캡처 디바이스를 찾지 못하는 경우 이는 렌더링 또는 캡처 디바이스를 전혀 사용할 수 없음을 의미합니다. 사용할 수 있는 디바이스가 없는 경우 메서드는 *ppEndpoint = NULL 을 설정하고 ERROR_NOT_FOUND 반환합니다.

GetDefaultAudioEndpoint 메서드를 호출하는 코드 예제는 다음 topics 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2008 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 mmdeviceapi.h

추가 정보

IMMDevice 인터페이스

IMMDeviceEnumerator 인터페이스