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 不會位移到驅動程式已配置或用戶端配置的任何實體緩衝區中。 相反地,這些位移是數據流相對的,可視為包含整個數據流且從頭到尾連續的理想化緩衝區的位移。 指向包含數據的實際實體緩衝區的任何內部位移,都必須個別維護。
播放期間,PlayOffset 和 WriteOffset 值會解譯如下:
- PlayOffset 是已播放之緩衝區中最後一個字節的位移。 PlayOffset + 1 是下一個將播放的位元組位移。
- WriteOffset 是播放緩衝區中最後一個字節的位移。
在錄製期間,PlayOffset 和 WriteOffset 值會解譯如下:
- PlayOffset 是已擷取之緩衝區中最後一個字節的位移。 PlayOffset + 1 是將擷取下一個字節的位移。
- WriteOffset 是擷取緩衝區中最後一個字節的位移。
PlayOffset 與 WriteOffset 之間的空間會被視為用戶端的限制,因為它代表已傳送至驅動程式的用戶端緩衝區部分,而且可能仍在驅動程式使用中。
如需詳細資訊,請參閱 音訊位置屬性。
要求
要求 | 價值 |
---|---|
標頭 | ksmedia.h (包括 Ksmedia.h) |
另請參閱
KSINTERFACE_STANDARD_LOOPED_STREAMING