다음을 통해 공유


IAudioSessionControl::GetState 메서드(audiopolicy.h)

GetState 메서드는 오디오 세션의 현재 상태를 검색합니다.

구문

HRESULT GetState(
  [out] AudioSessionState *pRetVal
);

매개 변수

[out] pRetVal

메서드가 현재 세션 상태를 쓰는 변수에 대한 포인터입니다. 상태는 다음 AudioSessionState 열거형 값 중 하나여야 합니다.

AudioSessionStateActive

AudioSessionStateInactive

AudioSessionStateExpired

이러한 값은 세션 상태가 각각 활성, 비활성 또는 만료되었음을 나타냅니다. 자세한 내용은 설명 부분을 참조하세요.

반환 값

메서드가 성공하면 S_OK가 반환되고, 실패할 경우 가능한 반환 코드에는 다음 표에 표시된 값이 포함되지만 이에 국한되지는 않습니다.

반환 코드 설명
E_POINTER
pRetVal 매개 변수는 NULL입니다.
AUDCLNT_E_DEVICE_INVALIDATED
오디오 엔드포인트 디바이스가 분리되었거나 오디오 하드웨어 또는 관련 하드웨어 리소스가 다시 구성, 비활성화, 제거 또는 사용할 수 없게 되었습니다.
AUDCLNT_E_SERVICE_NOT_RUNNING
Windows 오디오 서비스가 실행되고 있지 않습니다.

설명

이 메서드는 세션 상태가 활성 상태인지, 비활성 상태인지 또는 만료되었는지 여부를 나타냅니다. 세션에 실행 중인 스트림이 하나 이상 있는 경우 상태가 활성 상태입니다. 세션의 마지막 실행 스트림이 중지되면 상태가 활성에서 비활성으로 변경됩니다. 클라이언트가 스트림 개체에 대한 모든 참조를 해제하여 세션의 마지막 스트림을 삭제하면 세션 상태가 만료됨으로 변경됩니다.

Sndvol 프로그램은 활성 및 비활성 상태인 세션에 대한 볼륨 및 음소거 컨트롤을 표시합니다. 세션이 만료되면 Sndvol은 해당 세션에 대한 컨트롤 표시를 중지합니다. 세션이 이전에 만료되었지만 세션 상태가 활성(세션의 스트림이 실행되기 시작했기 때문에) 또는 비활성(클라이언트가 세션에 새 스트림을 할당하기 때문에)으로 변경된 경우 Sndvol은 세션에 대한 컨트롤 표시를 다시 시작합니다.

클라이언트는 IAudioClient::Initialize 메서드를 호출하여 스트림을 만듭니다. 스트림을 만들 때 클라이언트는 세션에 스트림을 할당합니다. 세션은 클라이언트가 세션에 첫 번째 스트림을 할당할 때 시작됩니다. 처음에는 세션이 비활성 상태입니다. 세션의 첫 번째 스트림이 실행되기 시작하면 세션 상태가 활성으로 변경됩니다. 클라이언트가 세션의 마지막 남은 스트림 개체에 대한 최종 참조를 해제하면 세션이 종료됩니다.

요구 사항

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

추가 정보

IAudioClient::Initialize

IAudioSessionControl 인터페이스

IMMDevice::Activate