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 是客户端缓冲区的字节偏移量。 当任一偏移量到达缓冲区的末尾时,它将环绕到缓冲区的开头。 因此,两个偏移量都未超过缓冲区大小。
对于非oop客户端缓冲区(具有流类型 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