KSPROPERTY_RTAUDIO_BUFFER
KSPROPERTY_RTAUDIO_BUFFER プロパティは、オーディオ データに対してドライバーが割り当てた循環バッファーを指定します。
次の表は、このプロパティの機能をまとめたものです。
用法の要点テーブル
Yammer の入手 | 設定 | 移行先 | プロパティ記述子の種類 | プロパティ値の種類 |
---|---|---|---|---|
はい |
いいえ |
ピン留めする |
プロパティ記述子 (インスタンス データ) は、他のメンバーと共に 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 |