다음을 통해 공유


XAUDIO2_VOICE_STATE 구조체(xaudio2.h)

음성의 현재 상태 및 커서 위치 데이터를 반환합니다.

구문

typedef struct XAUDIO2_VOICE_STATE {
  void   *pCurrentBufferContext;
  UINT32 BuffersQueued;
  UINT64 SamplesPlayed;
} XAUDIO2_VOICE_STATE;

멤버

pCurrentBufferContext

현재 처리되는 XAUDIO2_BUFFER 제공된 버퍼 컨텍스트에 대한 포인터이거나, 음성이 현재 중지된 경우 처리될 다음 버퍼에 대한 포인터입니다. 큐에 버퍼가 없는 경우 pCurrentBufferContext는 NULL입니다.

BuffersQueued

현재 처리된 오디오 버퍼를 포함하여 음성에 대기 중인 오디오 버퍼의 수입니다.

SamplesPlayed

이 음성이 마지막으로 시작된 이후 또는 마지막 오디오 스트림이 종료된 이후(XAUDIO2_END_OF_STREAM 플래그로 표시됨) 처리된 총 샘플 수입니다. 이 합계에는 루핑으로 인해 여러 번 재생된 샘플이 포함됩니다. 이론적으로 이 시간까지 음성으로 내보낸 모든 오디오가 캡처되는 경우 이 매개 변수는 샘플의 오디오 스트림 길이입니다. IXAudio2SourceVoice::GetState를 호출할 때 XAUDIO2_VOICE_NOSAMPLESPLAYED 지정하는 경우 이 멤버는 계산되지 않으며 IXAudio2SourceVoice::GetState에서 반환할 때 해당 값이 지정되지 않습니다. IXAudio2SourceVoice::GetState 는 XAUDIO2_VOICE_NOSAMPLESPLAYED 지정할 때 완료하는 데 약 3분의 1의 시간이 걸립니다.

설명

적응 차등 펄스 코드 변조(ADPCM)와 같은 CBR(상수 비트 속도) 형식을 포함하여 인코딩된 모든 형식의 경우 SamplesPlayed 는 디코딩된 샘플 측면에서 표현됩니다. PCM(펄스 코드 변조) 형식의 경우 SamplesPlayed 는 입력 또는 출력 샘플의 관점에서 표현됩니다. PCM 형식에 대한 입력에서 출력으로의 일대일 매핑이 있습니다.

클라이언트가 여러 음성의 상관 관계가 있는 위치를 가져와야 하는 경우( 즉, 다른 음성의 지정된 샘플이 재생 중일 때 재생 중인 특정 음성의 샘플을 정확히 파악하려면 XAudio2 엔진 콜백에서 IXAudio2SourceVoice::GetState 호출을 수행해야 합니다. 이렇게 하면 통화가 이루어지는 동안 어떤 음성도 진행되지 않습니다.

플랫폼 요구 사항

Windows 10(XAudio2.9); Windows 8, Windows Phone 8(XAudio 2.8); DirectX SDK(XAudio 2.7)

요구 사항

   
머리글 xaudio2.h

추가 정보

구조체