Метод ISpatialAudioObjectBase::GetBuffer (spatialaudioclient.h)
Возвращает буфер, используемый для предоставления звуковых данных для ISpatialAudioObject.
Синтаксис
HRESULT GetBuffer(
[out] BYTE **buffer,
[out] UINT32 *bufferLength
);
Параметры
[out] buffer
Буфер, в который записываются звуковые данные.
[out] bufferLength
Длина буфера в байтах. Эта длина будет значением, возвращаемым параметром frameCountPerBuffer для ISpatialAudioObjectRenderStream::BeginUpdatingAudioObjects, умноженным на значение поля nBlockAlign структуры WAVEFORMATEX, переданной в SpatialAudioObjectRenderStreamActivationParams.
параметр для ISpatialAudioClient::ActivateSpatialAudioStream.
Возвращаемое значение
Если метод завершается успешно, возвращает значение S_OK. В случае сбоя возможные коды возврата включают, помимо прочего, значения, показанные в следующей таблице.
Код возврата | Описание |
---|---|
|
ISpatialAudioObjectRenderStream::BeginUpdatingAudioObjects не был вызван до вызова GetBuffer. Этот метод необходимо вызывать до первого вызова GetBuffer и после каждого последующего вызова ISpatialAudioObjectRenderStream::EndUpdatingAudioObjects. |
|
Метод SetEndOfStream был вызван явно или неявно в предыдущем проходе обработки звука. Метод SetEndOfStream вызывается системой неявно, если метод GetBuffer не вызывается в пределах прохода обработки звука (между вызовами ISpatialAudioObjectRenderStream::BeginUpdatingAudioObjects и ISpatialAudioObjectRenderStream::EndUpdatingAudioObjects). |
Комментарии
При первом вызове GetBuffer после активации ISpatialAudioObject с вызовом ISpatialAudioObjectRenderStream::ActivateSpatialAudioObject,
начинается время существования пространственного звукового объекта.
Чтобы сохранить пространственный звуковой объект в активном состоянии после этого, этот GetBuffer должен вызываться при каждом проходе обработки (между вызовами ISpatialAudioObjectRenderStream::BeginUpdatingAudioObjects и ISpatialAudioObjectRenderStream::EndUpdatingAudioObjects). Если Метод GetBuffer не вызывается в рамках этапа обработки звука, метод SetEndOfStream вызывается неявно для деактивации звукового объекта, а звуковой объект можно повторно использовать только после вызова Release в объекте и повторной активации объекта путем повторного вызова ActivateSpatialAudioObject .
Указатели, полученные GetBuffer , не следует использовать после
Был вызван ISpatialAudioObjectRenderStream::EndUpdatingAudioObjects.
Требования
Требование | Значение |
---|---|
Целевая платформа | Windows |
Header | spatialaudioclient.h |