IXAudio2SourceVoice::SubmitSourceBuffer 메서드(xaudio2.h)
음성 큐에 새 오디오 버퍼를 추가합니다.
구문
HRESULT SubmitSourceBuffer(
[in] const XAUDIO2_BUFFER *pBuffer,
[in] const XAUDIO2_BUFFER_WMA *pBufferWMA
);
매개 변수
[in] pBuffer
큐에 대한 XAUDIO2_BUFFER 구조체에 대한 포인터입니다.
[in] pBufferWMA
WMA 데이터를 제출할 때 사용되는 추가 XAUDIO2_BUFFER_WMA 구조체에 대한 포인터입니다.
반환 값
성공하면 S_OK 반환하고, 그렇지 않으면 오류 코드를 반환합니다. XAudio2 관련 오류 코드에 대한 설명은 XAudio2 오류 코드를 참조하세요.
설명
음성은 제출된 순서대로 큐의 버퍼를 처리하고 재생합니다.
XAUDIO2_BUFFER 구조에는 오디오 버퍼의 위치 및 크기, 실제로 재생되어야 하는 버퍼 부분, 루프 영역(있는 경우) 및 루프 수, 이 버퍼와 관련된 콜백에 사용할 컨텍스트 포인터, 연속 사운드의 마지막 버퍼임을 나타내는 선택적 XAUDIO2_END_OF_STREAM 플래그가 포함됩니다.
음성이 시작되고 대기 중인 버퍼가 없는 경우 새 버퍼가 즉시 재생되기 시작합니다. 음성이 중지되면 버퍼가 음성 큐에 추가되고 음성이 시작될 때 재생됩니다.
지정된 버퍼의 일부만 재생해야 하는 경우 XAUDIO2_BUFFERPlayBegin 및 PlayLength 필드를 사용하여 재생할 지역을 지정할 수 있습니다. PlayLength 값이 0이면 전체 버퍼를 재생합니다(이 경우 PlayBegin도 0이어야 합니다).
버퍼의 전체 또는 일부를 연속 루프에서 재생해야 하는 경우 XAUDIO2_BUFFERLoopBegin, LoopLength 및 LoopCount 필드를 사용하여 루프 영역의 특성을 지정할 수 있습니다. XAUDIO2_NO_LOOP_REGION LoopBegin 값은 루프를 수행하지 않아야 하며, 이 경우 LoopLength 및 LoopCount를 0으로 지정해야 합니다. 루프 영역을 지정하는 경우 루프 영역이 비어 있지 않아야 하며(LoopLength> 0) 루프 수는 1에서 XAUDIO2_MAX_LOOP_COUNT 사이여야 합니다(또는 IXAudio2SourceVoice::ExitLoop 이 호출될 때만 종료되는 무한 루프를 지정하려면 XAUDIO2_LOOP_INFINITE). N의 루프 수는 N번 뒤로 건너뛰는 것을 의미합니다. 즉, 루프 영역을 N+1번 재생합니다.
명시적 재생 영역을 지정하는 경우 지정된 오디오 버퍼 내에서 시작하고 끝나야 합니다(또는 압축된 경우 버퍼가 디코딩할 샘플 집합 내에서). 또한 루프 영역은 재생 영역의 끝을 지나서 끝날 수 없습니다.
Xbox 360 |
---|
특정 오디오 형식의 경우 재생 또는 루프 영역의 유효한 엔드포인트에 대한 추가 제한 사항이 있을 수 있습니다. 예를 들어 XMA 버퍼의 경우 지역은 디코딩된 오디오의 128개 샘플 경계에서만 시작하거나 끝날 수 있습니다. |
pBuffer 포인터는 이 메서드를 호출한 직후 다시 사용하거나 해제할 수 있지만 pBuffer에서 참조하는 실제 오디오 데이터는 버퍼가 XAudio2에서 완전히 사용될 때까지 유효해야 합니다(IXAudio2VoiceCallback::OnBufferEnd 콜백으로 표시됨).
최대 XAUDIO2_MAX_QUEUED_BUFFERS 버퍼는 한 번에 음성으로 큐에 대기할 수 있습니다.
SubmitSourceBuffer 는 XAUDIO2_COMMIT_NOW OperationSet을 사용하여 XAudio2 콜백에서 호출되면 즉시 적용됩니다.
Xbox 360 |
---|
이 메서드는 Xbox 시스템 스레드에서 호출할 수 있습니다(대부분의 다른 XAudio2 메서드는 호출할 수 없음). 그러나 시스템 스레드에서 한 번에 최대 두 개의 원본 버퍼를 제출할 수 있습니다. |
플랫폼 요구 사항
Windows 10(XAudio2.9); Windows 8, Windows Phone 8(XAudio 2.8); DirectX SDK(XAudio 2.7)요구 사항
요구 사항 | 값 |
---|---|
대상 플랫폼 | Windows |
헤더 | xaudio2.h |