KSAUDIO_POSITION構造体 (ksmedia.h)
KSAUDIO_POSITION構造体は、オーディオ ストリームのサウンド バッファー内の再生カーソルと書き込みカーソルの現在位置を指定します。
構文
typedef struct {
#if ...
ULONGLONG PlayOffset;
#if ...
ULONGLONG WriteOffset;
#else
DWORDLONG PlayOffset;
#endif
#else
DWORDLONG WriteOffset;
#endif
} KSAUDIO_POSITION, *PKSAUDIO_POSITION;
メンバーズ
PlayOffset
現在の再生位置をバイト オフセットとして指定します。
WriteOffset
現在の書き込み位置をバイト オフセットとして指定します。
備考
この構造体は、KSPROPERTY_AUDIO_POSITION プロパティのデータ値を取得および設定するために使用されます。
ループされたクライアント バッファー (ストリームの種類が KSINTERFACE_STANDARD_LOOPED_STREAMING) の場合、PlayOffset 、および WriteOffset は、クライアント バッファーへのバイト オフセットです。 いずれかのオフセットがバッファーの末尾に達すると、バッファーの先頭までラップされます。 そのため、どちらのオフセットもバッファー サイズを超えることはありません。
ループされていないクライアント バッファー (ストリームの種類が KSINTERFACE_STANDARD_STREAMING) の場合、PlayOffset と WriteOffset は、ドライバーが割り当てた物理バッファーまたはクライアントが割り当てた 1 つの物理バッファーにオフセットされません。 代わりに、これらのオフセットはストリーム相対であり、ストリーム全体を含み、最初から最後まで連続する理想的なバッファーへのオフセットと考えることができます。 データを含む実際の物理バッファーを指す内部オフセットは、個別に維持する必要があります。
再生中、PlayOffset と WriteOffset 値 は次のように解釈されます。
- PlayOffset は、再生されたバッファー内の最後のバイトのオフセットです。 PlayOffset + 1 は、再生される次のバイトのオフセットです。
- WriteOffset は、再生バッファー内の最後のバイトのオフセットです。
記録中、PlayOffset と WriteOffset 値 は次のように解釈されます。
- PlayOffset は、キャプチャされたバッファー内の最後のバイトのオフセットです。 PlayOffset + 1 は、キャプチャされる次のバイトのオフセットです。
- WriteOffset は、キャプチャ バッファー内の最後のバイトのオフセットです。
PlayOffset と WriteOffset 間の領域は、既にドライバーに送信されており、ドライバーによって引き続き使用されている可能性があるクライアント バッファーの部分を表しているため、クライアントの制限外と見なされます。
詳細については、「Audio Position プロパティの」を参照してください。
必要条件
要件 | 価値 |
---|---|
ヘッダー | ksmedia.h (Ksmedia.h を含む) |
関連項目
KSINTERFACE_STANDARD_LOOPED_STREAMING