XAudio2 소개

XAudio2는 하위 수준 오디오 API입니다. 그것은 그것의 전임자, DirectSound 및 XAudio와 유사한 게임에 대 한 신호 처리 및 혼합 기초를 제공 합니다.

XAudio2는 DirectSound의 대망의 대체 요소입니다. 몇 가지 미해결 문제 및 기능 요청을 해결합니다.

XAudio2 기능

다음은 개발자가 게임에서 성능을 향상시킬 수 있도록 하는 XAudio2 기능 및 새로운 기능 목록입니다.

  • DSP 효과 및 음성별 필터링

    DSP(디지털 신호 처리) 효과는 오디오의 픽셀 셰이더입니다. 돼지 비명 소리를 낮고 무서운 몬스터 사운드로 변환하는 것부터 반향과 폐색 또는 장애물 필터링을 사용하여 게임 환경에 소리를 배치하는 것까지 모든 것을 처리합니다. XAudio2는 유연하고 강력한 DSP 프레임워크를 제공합니다. 또한 효율적인 저/높음/대역폭 필터링 효과를 위해 모든 음성에 기본 제공 필터를 제공합니다.

    DSP 효과 및 음성 필터링별 자세한 내용은 XAudio2 오디오 효과IXAudio2Voice::SetFilterParameters 를 참조하세요.

  • 서브믹싱

    서브믹싱은 여러 사운드를 단일 오디오 스트림으로 결합합니다. 예를 들어 복합 부분으로 구성된 엔진 사운드가 동시에 재생됩니다. 또한 서브믹싱을 사용하여 게임의 유사한 부분을 처리하고 결합할 수 있습니다. 예를 들어, 별도의 설정이 음악 볼륨을 제어하는 동안 사용자 볼륨 설정을 적용할 수 있도록 모든 게임 사운드 효과를 결합할 수 있습니다. DSP와 결합된 서브믹싱은 오늘날의 게임에 필요한 데이터 라우팅 및 처리 유형을 제공합니다. XAudio2를 사용하면 임의의 수준의 서브믹싱을 허용하므로 복잡한 소리와 게임 믹스를 만들 수 있습니다.

    서브믹싱에 대한 자세한 내용은 XAudio2 오디오 그래프XAudio2 음성 을 참조하세요.

  • 압축 오디오 지원

    DirectSound에 대한 주요 기능 요청 중 하나는 압축 오디오 지원을 위한 것이었습니다. XAudio2는 기본적으로 런타임 압축 해제를 사용하여 압축된 형식인 ADPCM을 지원합니다.

  • 향상된 다중 채널 및 서라운드 사운드 지원

    다중 채널, 3D 및 서라운드 사운드 지원이 확장됩니다. 3D 및 서라운드 사운드는 이제 훨씬 더 유연하고 투명합니다. XAudio2는 다중 채널 소리에 대한 6채널 제한을 제거하고 다중 채널 지원 오디오 카드 다중 채널 오디오를 지원합니다. 카드 하드웨어 가속이 필요하지 않습니다.

  • 다중 전송률 처리

    CPU 사용량을 최소화하기 위해 XAudio2는 여러 저가 오디오 처리 그래프를 만드는 기술을 제공합니다. 이렇게 하면 속도가 48kHz 미만인 경우 게임에서 소스 재료의 속도로 오디오를 처리할 수 있도록 하여 CPU 사용량을 크게 줄일 수 있습니다.

  • 차단 해제 API 모델

    몇 가지 예외를 제외하고 XAudio2 메서드 호출은 오디오 처리 엔진을 차단하지 않습니다. 즉, 클라이언트는 지연을 일으키는 장기 실행 호출을 차단하지 않고 언제든지 메서드 호출 집합을 안전하게 만들 수 있습니다. 예외는 IXAudio2Voice::D estroyVoice 메서드(음성 제거가 완료될 때까지 엔진을 차단할 수 있음) 및 오디오 스레드를 종료하는 메서드인 IXAudio2::StopEngineIXAudio2::Release입니다. XAudio2 메서드 호출은 오디오 처리 엔진을 차단하지 않지만 XAudio2 메서드는 중요한 섹션을 포함하며 경우에 따라 자체 차단될 수 있습니다.

XAudio2를 사용하는 경우

XAudio2는 주로 게임을 위한 고성능 오디오 엔진을 개발하기 위한 것입니다. 자신의 게임에 소리 효과 및 배경 음악을 추가하고자 하는 개발자에게 XAudio2는 대기 시간이 짧고 동적 버퍼, 동기식 고밀도 샘플 재생, 암시적 원본 속도 변환을 지원하는 믹싱 엔진과 오디오 그래프를 제공합니다. WASAPI에 비해 XAudio2는 복잡한 오디오 솔루션에도 최소한의 코드만 필요합니다. Media Foundation 엔진과 비교하여 XAudio2는 게임에서 사용하도록 설계된 낮은 수준의 짧은 대기 시간 C++ API입니다.

일반 음악 재생이 필요한 애플리케이션의 경우 Media Foundation 엔진이 애플리케이션의 요구 사항과 더 일치할 수 있습니다.

프로그래밍 가이드

시작

XAudio2 프로그래밍 참조