다음을 통해 공유


AUDCLNT_STREAMFLAGS_XXX 상수

스트림을 초기화하는 동안 클라이언트가 오디오 스트림에 할당할 수 있는 특성을 지정합니다.

상수/값 설명
AUDCLNT_STREAMFLAGS_CROSSPROCESS
0x00010000
오디오 스트림은 크로스 프로세스 오디오 세션의 멤버가 됩니다. 자세한 내용은 설명 부분을 참조하세요.
AUDCLNT_STREAMFLAGS_LOOPBACK
0x00020000
오디오 스트림은 루프백 모드에서 작동합니다. 자세한 내용은 설명 부분을 참조하세요.
AUDCLNT_STREAMFLAGS_EVENTCALLBACK
0x00040000
클라이언트에 의한 오디오 버퍼 처리는 이벤트 기반이 됩니다. 자세한 내용은 설명 부분을 참조하세요.
AUDCLNT_STREAMFLAGS_NOPERSIST
0x00080000
오디오 세션의 볼륨 및 음소거 설정은 애플리케이션 다시 시작에서 유지되지 않습니다. 자세한 내용은 설명 부분을 참조하세요.
AUDCLNT_STREAMFLAGS_RATEADJUST
0x00100000
이 상수는 Windows 7의 새로운 기능입니다. 스트림의 샘플 속도는 애플리케이션에서 지정한 속도로 조정됩니다. 자세한 내용은 설명 부분을 참조하세요.
AUDCLNT_STREAMFLAGS_AUTOCONVERTPCM
0x80000000
채널 행렬과 샘플 속도 변환기는 IAudioClient::Initialize 에 제공된 압축되지 않은 형식과 오디오 엔진 혼합 형식 간에 변환하기 위해 필요에 따라 삽입됩니다.
AUDCLNT_STREAMFLAGS_SRC_DEFAULT_QUALITY
0x08000000
AUDCLNT_STREAMFLAGS_AUTOCONVERTPCM 사용하는 경우 기본 변환보다 품질이 우수하지만 성능 비용이 더 높은 샘플 속도 변환기가 사용됩니다. 이것은 오디오가 궁극적으로 침묵 펌핑 또는 미터 채우기와 같은 다른 시나리오와는 달리 사람이 들을 수 있도록 의도된 경우에 사용해야 합니다.

설명

IAudioClient::Initialize 메서드와 DIRECTX_AUDIO_ACTIVATION_PARAMS 구조체는 AUDCLNT_STREAMFLAGS_XXX 상수를 사용합니다.

AUDCLNT_STREAMFLAGS_CROSSPROCESS 플래그는 스트림의 오디오 세션이 프로세스 간 세션임을 나타냅니다. 교차 프로세스 세션은 둘 이상의 프로세스에서 스트림을 수락할 수 있습니다. 두 개의 개별 프로세스에 있는 두 애플리케이션이 동일한 세션 GUID를 사용하여 IAudioClient::Initialize 를 호출하고 두 애플리케이션이 AUDCLNT_SHAREMODE_CROSSPROCESS 플래그를 설정하는 경우 오디오 엔진은 해당 스트림을 동일한 프로세스 간 세션에 할당합니다. 이 플래그는 크로스 프로세스 세션이 아닌 프로세스별 세션에 스트림을 할당하는 기본 동작을 재정의합니다. AUDCLNT_STREAMFLAGS_CROSSPROCESS 플래그 비트는 배타적 모드와 호환되지 않습니다. 교차 프로세스 세션에 대한 자세한 내용은 오디오 세션을 참조하세요.

AUDCLNT_STREAMFLAGS_LOOPBACK 플래그를 사용하면 루프백 기록을 사용할 수 있습니다. 루프백 녹음에서 오디오 엔진은 렌더링 엔드포인트 디바이스에서 재생 중인 오디오 스트림을 WASAPI 클라이언트가 스트림을 캡처할 수 있도록 오디오 엔드포인트 버퍼에 복사합니다. 이 플래그가 설정되면 IAudioClient::Initialize 메서드가 렌더링 디바이스에서 캡처 버퍼를 열려고 시도합니다. 이 플래그는 렌더링 디바이스에만 유효하며 Initialize 호출이 ShareMode 매개 변수를 AUDCLNT_SHAREMODE_SHARED 설정하는 경우에만 유효합니다. 그렇지 않으면 초기화 호출이 실패합니다. 호출이 성공하면 클라이언트는 IAudioClient::GetService 메서드를 호출하여 렌더링 디바이스에서 IAudioCaptureClient 인터페이스를 가져올 수 있습니다. 자세한 내용은 루프백 기록을 참조하세요.

AUDCLNT_STREAMFLAGS_EVENTCALLBACK 플래그를 사용하면 이벤트 기반 버퍼링이 가능합니다. 클라이언트가 스트림을 초기 화하는 IAudioClient::Initialize 호출에서 이 플래그를 설정하는 경우 클라이언트는 이후에 IAudioClient::SetEventHandle 메서드를 호출하여 스트림에 대한 이벤트 핸들을 제공해야 합니다. 스트림이 시작된 후 오디오 엔진은 버퍼가 클라이언트가 처리할 준비가 될 때마다 클라이언트에 알리도록 이벤트 핸들에 신호를 보냅니다. WASAPI는 렌더링 및 캡처 버퍼 모두에 대한 이벤트 기반 버퍼링을 지원합니다. 공유 모드 및 단독 모드 스트림 모두 이벤트 기반 버퍼링을 사용할 수 있습니다. AUDCLNT_STREAMFLAGS_EVENTCALLBACK 플래그를 사용하는 코드 예제는 배타적 모드 스트림을 참조하세요.

AUDCLNT_STREAMFLAGS_NOPERSIST 플래그는 볼륨의 지속성을 사용하지 않도록 설정하고 렌더링 스트림을 포함하는 세션에 대한 설정을 음소거합니다. 기본적으로 렌더링 세션의 볼륨 수준 및 음소거 상태는 애플리케이션 다시 시작에서 지속됩니다. 캡처 세션의 볼륨 수준 및 음소거 상태는 지속되지 않습니다. 세션 볼륨 및 음소거 설정의 지속성에 대한 자세한 내용은 오디오 세션을 참조하세요.

AUDCLNT_STREAMFLAGS_RATEADJUST 플래그를 사용하면 애플리케이션이 스트림의 샘플 속도를 설정하는 데 사용되는 IAudioClockAdjustment 인터페이스에 대한 참조를 가져올 수 있습니다. 이 상호 작용에 대한 포인터를 얻으려면 애플리케이션이 이 플래그를 사용하여 오디오 클라이언트를 초기화한 다음, IID_IAudioClockAdjustment 식별자를 지정하여 IAudioClient::GetService를 호출해야 합니다. 새 샘플 속도를 설정하려면 IAudioClockAdjustment::SetSampleRate를 호출합니다. 이 플래그는 렌더링 디바이스에만 유효합니다. 그렇지 않으면 오류 코드 AUDCLNT_E_WRONG_ENDPOINT_TYPE GetService 호출이 실패합니다. 또한 애플리케이션은 초기화 호출 중에 ShareMode 매개 변수를 AUDCLNT_SHAREMODE_SHARED 설정해야 합니다. 오디오 클라이언트가 공유 모드가 아닌 경우 SetSampleRate가 실패합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트
Windows Vista [데스크톱 앱 | UWP 앱]
지원되는 최소 서버
Windows Server 2008 [데스크톱 앱 | UWP 앱]
헤더
Audiosessiontypes.h

추가 정보

핵심 오디오 상수

IAudioCaptureClient 인터페이스

IAudioClient::GetService

IAudioClient::Initialize

IAudioClient::SetEventHandle