핵심 오디오 인터페이스

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 오디오 엔드포인트 디바이스의 볼륨 수준 또는 음소거 상태가 변경되는 경우 알림을 제공합니다.

프로그래밍 참조