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