Windows 오디오 아키텍처
이 항목에서는 Windows 10/11 오디오 아키텍처에 대한 대략적인 요약을 제공했습니다.
Windows 10/11 오디오 스택 다이어그램
이 다이어그램은 Windows 10/11 오디오 스택의 주요 요소에 대한 요약을 제공합니다.
API
최상위 API
최상위 API는 애플리케이션 개발에 사용됩니다. 이러한 API는 현재 사용 중이며 지원됩니다.
- XAML MediaElement 클래스(C#, VB, C++)
- HTML 오디오 개체 및 비디오 개체<태그> (웹 사이트 및 Windows Web Apps에서 사용)
- Windows.Media.Capture 네임스페이스 (C#, VB, C++)
- Microsoft Media Foundation (C++)
이러한 이전 API는 더 이상 사용되지 않습니다.
하위 수준 API
이러한 하위 수준 API는 오디오 스트리밍에 권장됩니다.
이 하위 수준 API는 열거형에 권장됩니다.
이러한 API는 Windows 애플리케이션에는 권장되지 않습니다.
- MMDevice API 정보(Windows.Devices.Enumeration으로 대체됨)
- DeviceTopology API
- EndpointVolume API
오디오 엔진
오디오 엔진은 오디오 엔진(audioeng.dll)을 로드하는 두 개의 관련 구성 요소인 audiodg.exe(오디오 장치 그래프)로 구성됩니다.
오디오 엔진:
- 오디오 스트림을 혼합하고 처리합니다. 오디오 엔진이 버퍼를 사용하여 오디오를 전송하는 방법에 대한 자세한 내용은 WaveRT 포트 드라이버 이해를 참조하세요.
- 오디오 신호를 처리하는 H/W 관련 플러그 인인 API(오디오 처리 개체)를 로드합니다. API에 대한 자세한 내용은 Windows 오디오 처리 개체를 참조 하세요.
오디오 서비스(audiosrv.dll)
오디오 서비스:
- 오디오 스트림을 설정 및 제어하는 데 사용됩니다.
- 백그라운드 오디오 재생, 더킹 등에 대한 Windows 정책을 구현합니다.
오디오 엔드포인트 작성기(audioendpointbuilder.exe)
오디오 엔드포인트 작성기(audioendpointbuilder.exe):
- 새 오디오 디바이스를 검색하고 소프트웨어 오디오 엔드포인트를 만드는 데 사용됩니다. 사용되는 알고리즘에 대한 자세한 내용은 오디오 엔드포인트 작성기 알고리즘을 참조하세요.
오디오 드라이버
오디오 드라이버:
- 포트 미니포트 모델을 따릅니다. 자세한 내용은 WDM 오디오 용어 및 WaveRT 미니포트 드라이버 개발을 참조하세요.
- 오디오 스택이 통합 스피커 및 마이크, 헤드셋/헤드폰, USB 장치, Bluetooth 장치, HDMI 등 여러 오디오 장치에서 오디오를 렌더링하고 캡처하도록 허용합니다.
- 포트 미니포트 모델은 고급 Linux 사운드 아키텍처 ALSA에 해당합니다.
- 샘플 드라이버 코드에 대한 자세한 내용은 샘플 오디오 드라이버를 참조 하세요.
하드웨어
지정된 디바이스에 있는 오디오 하드웨어는 다양하지만 다음을 포함할 수 있습니다.
- 오디오 코덱
- DSP(선택 사항)
- 통합 스피커, 마이크 등
- 외부 디바이스: USB 오디오 장치, Bluetooth 오디오 디바이스, HDMI 오디오 등
- 신호 처리는 API 대신 또는 API 외에 H/W(예: 코덱 또는 DSP)에서 구현할 수도 있습니다.