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 プロパティ」を参照してください。
要件
要件 | 値 |
---|---|
Header | ksmedia.h (Ksmedia.h を含む) |
こちらもご覧ください
KSINTERFACE_STANDARD_LOOPED_STREAMING