次の方法で共有


ISpatialAudioObjectBase::GetBuffer メソッド (spatialaudioclient.h)

ISpatialAudioObject のオーディオ データを指定するために使用されるバッファーを取得します。

構文

HRESULT GetBuffer(
  [out] BYTE   **buffer,
  [out] UINT32 *bufferLength
);

パラメーター

[out] buffer

オーディオ データの書き込み先のバッファー。

[out] bufferLength

バッファーの長さ (バイト単位)。 この長さは、frameCountPerBuffer パラメーターで ISpatialAudioObjectRenderStream::BeginUpdatingAudioObjects に、SpatialAudioObjectRenderStreamActivationParams で渡された WAVEFORMATEX 構造体の nBlockAlign フィールドの値を乗算した値になります。
パラメーターを ISpatialAudioClient::ActivateSpatialAudioStream に設定します。

戻り値

メソッドが成功した場合は、S_OK を返します。 エラーが発生した場合、次の表に示す値が、可能なリターン コードに含まれますが、これらに限定されません。

リターン コード 説明
SPTLAUDCLNT_E_OUT_OF_ORDER

GetBuffer の呼び出し前に ISpatialAudioObjectRenderStream::BeginUpdatingAudioObjects が呼び出されませんでした。 このメソッドは、 GetBuffer が初めて呼び出される前、および ISpatialAudioObjectRenderStream::EndUpdatingAudioObjects を後続のすべての呼び出しの後に呼び出す必要があります。

SPTLAUDCLNT_E_RESOURCES_INVALIDATED

SetEndOfStream は、以前のオーディオ処理パスで明示的または暗黙的に呼び出されました。 GetBuffer がオーディオ処理パス内で呼び出されない場合 (ISpatialAudioObjectRenderStream::BeginUpdatingAudioObjectsISpatialAudioObjectRenderStream::EndUpdatingAudioObjects の呼び出しの間)、SetEndOfStream はシステムによって暗黙的に呼び出されます。

注釈

ISpatialAudioObject が呼び出し ISpatialAudioObjectRenderStream::ActivateSpatialAudioObject を使用してアクティブ化された後に GetBuffer が初めて呼び出される場合、
空間オーディオ オブジェクトの有効期間が開始されます。
その後も空間オーディオ オブジェクトを維持するには、すべての処理パスでこの GetBuffer を呼び出す必要があります ( ISpatialAudioObjectRenderStream::BeginUpdatingAudioObjectsISpatialAudioObjectRenderStream::EndUpdatingAudioObjects の呼び出しの間)。 GetBuffer がオーディオ処理パス内で呼び出されない場合、SetEndOfStream はオーディオ オブジェクトで暗黙的に呼び出されて非アクティブ化されます。オーディオ オブジェクトは、オブジェクトで Release を呼び出してから ActivateSpatialAudioObject をもう一度呼び出してオブジェクトを再アクティブ化した後にのみ再利用できます。

GetBuffer によって取得されたポインターは、後で使用しないでください
ISpatialAudioObjectRenderStream::EndUpdatingAudioObjects が呼び出されました。

要件

要件
対象プラットフォーム Windows
ヘッダー spatialaudioclient.h

こちらもご覧ください

ISpatialAudioObject

ISpatialAudioObjectBase