次の方法で共有


KSPROPERTY_RTAUDIO_BUFFER

KSPROPERTY_RTAUDIO_BUFFER プロパティは、オーディオ データに対してドライバーが割り当てた循環バッファーを指定します。

次の表は、このプロパティの機能をまとめたものです。

用法の要点テーブル

Yammer の入手 設定 移行先 プロパティ記述子の種類 プロパティ値の種類

はい

いいえ

ピン留めする

KSRTAUDIO_BUFFER_PROPERTY

KSRTAUDIO_BUFFER

プロパティ記述子 (インスタンス データ) は、他のメンバーと共に KSPROPERTY 構造体を含む KSRTAUDIO_BUFFER_PROPERTY 構造体で構成されます。 クライアントは、要求されたバッファー サイズを構造体に書き込みます。 クライアントが特定のベース アドレスを操作する必要がない場合は、ベース アドレスを NULL として指定する必要があります。

プロパティ値 (操作データ) は、KSRTAUDIO_BUFFER 型の構造体です。 ドライバーは、この構造体に実際のバッファー サイズ、ベース アドレス、および割り当てられている循環バッファーのメモリ バリア フラグを入力します。

戻り値

KSPROPERTY_RTAUDIO_BUFFER プロパティ要求は、正常に完了したことを示すために STATUS_SUCCESS を返します。 それ以外の場合、要求は適切な失敗状態コードを返します。 次の表に、考えられる失敗状態コードの一部を示します。

状態コード 意味

STATUS_UNSUCCESSFUL

バッファー属性の組み合わせを指定した循環バッファーを割り当てることはできません。

STATUS_INSUFFICIENT_RESOURCES

割り当て不可のバッファーのメモリ。

STATUS_DEVICE_NOT_READY

デバイスの準備ができていません

解説

ベース アドレスは、循環バッファーの開始時の仮想メモリ アドレスです。 クライアントは、このアドレスのバッファーに直接アクセスできます。 バッファーは仮想メモリ内で連続しています。 物理メモリ内でバッファーを連続させるかどうかの決定は、ドライバーに任されます。

クライアントは、プロパティ記述子のベース アドレスを NULL に設定する必要があります。 ドライバーは、割り当てられたオーディオ バッファーの仮想アドレスにプロパティ値のベース アドレスを設定します。

通常、オーディオ ハードウェアでは、サンプル境界で開始および終了するか、ハードウェアに依存する他の種類のアラインメント制約を満たすオーディオ バッファーが必要です。 十分なメモリが使用可能な場合、バッファーの実際のサイズは、最も近いサンプルまたはその他のハードウェア制約境界で四捨五入 (繰り上げまたは切り捨て) された要求サイズです。 実際のサイズは、少なくとも要求されたサイズである必要があります。それ以外の場合、Audio Session API (WASAPI) オーディオ エンジンはバッファーを使用せず、ストリームの作成は失敗します。

KSPROPERTY_RTAUDIO_BUFFER プロパティ要求が成功した場合、KSRTAUDIO_BUFFER 型の構造体であるプロパティ値には、ドライバーによって割り当てられたバッファーのアドレスとサイズが含まれます。

ピンを閉じると、このプロパティによって割り当てられたバッファーが自動的に解放されます。

イベント通知が必要な場合は、KSPROPERTY_RTAUDIO_BUFFER の代わりに KSPROPERTY_RTAUDIO_BUFFER_WITH_NOTIFICATION を呼び出す必要があります。

要件

バージョン

Windows Vista 以降の Windows オペレーティング システムで使用できます。

ヘッダー

Ksmedia.h

関連項目

KSRTAUDIO_BUFFER

KSRTAUDIO_BUFFER_PROPERTY

KSPROPERTY_RTAUDIO_BUFFER_WITH_NOTIFICATION