핵심 오디오 인터페이스
Core Audio SDK에 대한 이 프로그래밍 참조에는 다음 인터페이스가 포함됩니다.
MMDevice API
MMDevice(Windows 멀티미디어 디바이스) API를 사용하면 오디오 클라이언트가 오디오 엔드포인트 디바이스를 검색하고, 기능을 확인하고, 해당 디바이스에 대한 드라이버 인스턴스를 만들 수 있습니다. 헤더 파일 Mmdeviceapi.h는 MMDevice API의 인터페이스를 정의합니다. 자세한 내용은 MMDevice API 정보를 참조하세요.
다음 표에서는 Windows Vista용 Core Audio SDK에서 사용할 수 있는 MMDevice 인터페이스를 나열합니다.
인터페이스 | 설명 |
---|---|
IMMDevice | 오디오 디바이스를 나타냅니다. |
IMMDeviceCollection | 오디오 디바이스의 컬렉션을 나타냅니다. |
IMMDeviceEnumerator | 오디오 디바이스를 열거하는 메서드를 제공합니다. |
IMMEndpoint | 오디오 엔드포인트 디바이스를 나타냅니다. |
IMMNotificationClient | 오디오 엔드포인트 디바이스가 추가 또는 제거되거나, 디바이스의 상태 또는 속성이 변경되거나, 디바이스에 할당된 기본 역할이 변경될 때 알림을 제공합니다. |
WASAPI
WASAPI(Windows 오디오 세션 API)를 사용하면 클라이언트 애플리케이션이 애플리케이션과 오디오 엔드포인트 디바이스 간의 오디오 데이터 흐름을 관리할 수 있습니다. 헤더 파일 Audioclient.h 및 Audiopolicy.h는 WASAPI 인터페이스를 정의합니다. 자세한 내용은 WASAPI 정보를 참조하세요.
다음 표에서는 Windows Vista용 Core Audio SDK 이상에서 사용할 수 있는 WASAPI 인터페이스를 나열합니다.
인터페이스 | 설명 |
---|---|
IActivateAudioInterfaceAsyncOperation |
WASAPI 인터페이스를 활성화하는 비동기 작업을 나타내며 활성화 결과를 검색하는 메서드를 제공합니다. Windows 8 부터 적용됩니다. |
IActivateAudioInterfaceCompletionHandler |
WASAPI 인터페이스의 활성화가 완료되었음을 나타내는 콜백을 제공합니다. Windows 8 부터 적용됩니다. |
IAudioCaptureClient | 클라이언트가 캡처 엔드포인트 버퍼에서 입력 데이터를 읽을 수 있도록 합니다. |
IAudioClient | 클라이언트가 오디오 애플리케이션과 오디오 엔진 또는 오디오 엔드포인트 디바이스의 하드웨어 버퍼 간에 오디오 스트림을 만들고 초기화할 수 있습니다. |
IAudioClock | 클라이언트가 스트림의 데이터 속도 및 스트림의 현재 위치를 모니터링할 수 있도록 합니다. |
IAudioClock2 |
클라이언트가 현재 디바이스 위치를 가져올 수 있도록 합니다. |
IAudioClockAdjustment |
클라이언트가 스트림의 샘플 속도를 설정할 수 있도록 합니다. |
IAudioRenderClient | 클라이언트가 렌더링 엔드포인트 버퍼에 출력 데이터를 쓸 수 있도록 합니다. |
IAudioSessionControl | 클라이언트가 오디오 세션에 대한 컨트롤 매개 변수를 구성하고 세션의 이벤트를 모니터링할 수 있도록 합니다. |
IAudioSessionControl2 |
클라이언트가 오디오 세션에 대한 정보를 가져올 수 있도록 합니다. |
IAudioSessionManager | 클라이언트가 교차 프로세스 및 프로세스별 오디오 세션 모두에 대한 세션 컨트롤 및 볼륨 컨트롤에 액세스할 수 있도록 합니다. |
IAudioSessionManager2 |
서브믹스의 열거형 및 알림을 포함하여 모든 하위믹스를 관리합니다. 또한 더킹 알림에 대한 지원을 제공합니다. |
IAudioSessionEnumerator |
클라이언트가 오디오 세션을 열거할 수 있도록 합니다. |
IAudioStreamVolume | 클라이언트가 오디오 스트림의 모든 채널에 대한 볼륨 수준을 제어하고 모니터링할 수 있도록 합니다. |
IChannelAudioVolume | 클라이언트가 스트림이 속한 오디오 세션의 모든 채널에 대한 볼륨 수준을 제어할 수 있습니다. |
ISimpleAudioVolume | 클라이언트가 오디오 세션의 master 볼륨 수준을 제어할 수 있도록 합니다. |
IAudioSessionEvents | 볼륨 수준 변경, 표시 이름 및 세션 상태와 같은 세션 관련 이벤트에 대한 알림을 제공합니다. |
IAudioSessionNotification |
세션 변경이 발생할 때 알림을 보냅니다. |
IAudioVolumeDuckNotification |
보류 중인 시스템 더킹 변경에 대한 알림을 보냅니다. |
DeviceTopology API
DeviceTopology API는 클라이언트 애플리케이션에 오디오 렌더링 및 캡처 디바이스의 기능 하드웨어 토폴로지를 트래버스하는 기능을 제공합니다. 헤더 파일 Devicetopology.h는 DeviceTopology API의 인터페이스를 정의합니다. 자세한 내용은 디바이스 토폴로지 및 DeviceTopology API를 참조하세요.
다음 표에서는 Windows Vista용 Core Audio SDK 이상에서 사용할 수 있는 DeviceTopology 인터페이스를 나열합니다.
인터페이스 | 설명 |
---|---|
IAudioAutoGainControl | 하드웨어 AGC(자동 게인 제어)에 대한 액세스를 제공합니다. |
IAudioBass | 하드웨어 베이스 수준 컨트롤에 대한 액세스를 제공합니다. |
IAudioChannelConfig | 하드웨어 채널 구성 컨트롤에 대한 액세스를 제공합니다. |
IAudioInputSelector | 하드웨어 멀티플렉서 컨트롤(입력 선택기)에 대한 액세스를 제공합니다. |
IAudioLoudness | "음음" 보정 제어에 대한 액세스를 제공합니다. |
IAudioMidrange | 하드웨어 미드레인지 수준 컨트롤에 대한 액세스를 제공합니다. |
IAudioMute | 하드웨어 음소거 컨트롤에 대한 액세스를 제공합니다. |
IAudioOutputSelector | 하드웨어 demultiplexer 컨트롤(출력 선택기)에 대한 액세스를 제공합니다. |
IAudioPeakMeter | 하드웨어 피크 미터 컨트롤에 대한 액세스를 제공합니다. |
IAudioTreble | 하드웨어 고음 수준 컨트롤에 대한 액세스를 제공합니다. |
IAudioVolumeLevel | 하드웨어 볼륨 제어에 대한 액세스를 제공합니다. |
IConnector | 구성 요소 간의 연결 지점을 나타냅니다. |
IControlInterface | 파트(하위 단위 또는 커넥터)의 컨트롤 인터페이스를 나타냅니다. |
IDeviceSpecificProperty | 커넥터 또는 하위 단위의 디바이스별 속성을 나타냅니다. |
IDeviceTopology | 오디오 디바이스의 토폴로지 액세스 권한을 제공합니다. |
IKsFormatSupport | 오디오 디바이스와 시스템 메모리 간의 소프트웨어 구성 I/O 연결(일반적으로 DMA 채널)에서 지원하는 오디오 데이터 형식에 대한 정보를 제공합니다. |
IKsJackDescription | 오디오 어댑터의 디바이스와 외부 또는 내부 엔드포인트 디바이스(예: 마이크 또는 CD 플레이어) 간의 물리적 연결을 제공하는 잭 또는 내부 커넥터에 대한 정보를 제공합니다. |
IKsJackDescription2 |
엔드포인트 디바이스에 대한 커넥터의 KSPROPERTY_JACK_DESCRIPTION2 속성에 편리하게 액세스할 수 있습니다. |
IKsJackSinkInformation |
잭이 하드웨어에서 지원되는 경우 잭 싱크에 대한 정보를 제공합니다. |
IPart | 디바이스 토폴로지의 파트(커넥터 또는 하위 단위)를 나타냅니다. |
IPartsList | 부품 목록(커넥터 및 하위 단위)을 나타냅니다. |
IPerChannelDbLevel | 오디오 스트림 또는 오디오 스트림의 주파수 대역의 볼륨 수준(데시벨)에 대한 채널별 제어를 제공하는 제네릭 하위 단위 컨트롤 인터페이스를 나타냅니다. |
ISubunit | 클라이언트와 오디오 엔드포인트 디바이스 간의 데이터 경로에 있는 하드웨어 하위 단위(예: 볼륨 수준 컨트롤)를 나타냅니다. |
IControlChangeNotify | 파트(커넥터 또는 하위 단위)의 상태 변경되는 경우 알림을 제공합니다. |
EndpointVolume API
EndpointVolume API를 사용하면 특수 클라이언트가 오디오 엔드포인트 디바이스의 볼륨 수준을 제어하고 모니터링할 수 있습니다. 헤더 파일 Endpointvolume.h는 EndpointVolume API의 인터페이스를 정의합니다. 자세한 내용은 EndpointVolume API 를 참조하세요.
다음 표에서는 Windows Vista용 핵심 오디오 SDK에서 사용할 수 있는 EndpointVolume 인터페이스를 나열합니다.
인터페이스 | 설명 |
---|---|
IAudioEndpointVolume | 오디오 엔드포인트 디바이스를 오가는 오디오 스트림의 볼륨 컨트롤을 나타냅니다. |
IAudioEndpointVolumeEx |
디바이스 엔드포인트 간 오디오 스트림의 볼륨 컨트롤을 제공합니다. |
IAudioMeterInformation | 오디오 엔드포인트 디바이스를 오가는 오디오 스트림의 최대 측정기를 나타냅니다. |
IAudioEndpointVolumeCallback | 오디오 엔드포인트 디바이스의 볼륨 수준 또는 음소거 상태가 변경되는 경우 알림을 제공합니다. |