次の方法で共有


ISpatialAudioMetadataWriter::WriteNextItem メソッド (spatialaudiometadata.h)

指定したオフセットで新しいメタデータ項目を開始します。

構文

HRESULT WriteNextItem(
  [in] UINT16 frameOffset
);

パラメーター

[in] frameOffset

ActivateSpatialAudioMetadataItems対する frameCount パラメーターで指定された範囲内の項目のフレーム オフセット。

戻り値

メソッドが成功した場合は、S_OK を返します。 失敗した場合、次の表に示す値が含まれますが、これに限定されません。

リターン コード 説明
SPTLAUD_MD_CLNT_E_NO_ITEMS_OPEN
ISpatialAudioMetadataItemsOpen の呼び出しで書き込み用に開かっていないか、Close の呼び出しで書き込みのためにオブジェクトが閉じられました。
SPTLAUD_MD_CLNT_E_FRAMEOFFSET_OUT_OF_RANGE
書き込みセッションで書き込まれたアイテムの数が、ISpatialAudioClient::ActivateSpatialAudioStream に渡される SpatialAudioObjectRenderStreamForMetadataActivationParamMaxMetadataItemCount フィールドに指定された値よりも大きくなります。

frameCount 値が ActivateSpatialAudioMetadataItemsframeCount パラメーターの値より大きく、オーバーフロー モードが SpatialAudioMetadataWriterOverflow_Fail に設定されました。

E_INVALIDARG
frameOffset の値は、同じ書き込みセッション内で WriteNextItem を呼び出した前の呼び出しで指定した値より大きくはありません。

解説

WriteNextItem を呼び出す前に、オブジェクトの作成後と Close の呼び出し後に Open を呼び出して、書き込み用に ISpatialAudioMetadataWriter開く必要があります。 OpenClose の呼び出しによって区切られた書き込みセッション中は、frameOffset パラメーターの値が前の呼び出しの値より大きい必要があります。

単一の書き込みセッションでは、WriteNextItem を使用して、ISpatialAudioClient::ActivateSpatialAudioStream に渡された SpatialAudioObjectRenderStreamForMetadataActivationParamMaxMetadataItemCount フィールドに指定された値よりも多くの項目を書き込む必要があります。または、SPTLAUD_MD_CLNT_E_FRAMEOFFSET_OUT_OF_RANGE エラーが発生します。

オーバーフロー モードが SpatialAudioMetadataWriterOverflow_Fail に設定されている場合、frameOffset パラメーターの値は、activateSpatialAudioMetadataItems対する frameCount パラメーターの値より小さくする必要があります。または、SPTLAUD_MD_CLNT_E_FRAMEOFFSET_OUT_OF_RANGE エラーが発生します。

WriteNextItem を呼び出した後、WriteNextItemCommand を呼び出して、アイテムのメタデータ コマンドと値データを書き込みます。

要件

   
対象プラットフォーム Windows
ヘッダー spatialaudiometadata.h

関連項目

ISpatialAudioMetadataWriter