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) 的非looped客户端缓冲区 (,PlayOffset 和 WriteOffset 不会偏移到驱动程序已分配或客户端已分配的任何物理缓冲区中。 相反,这些偏移量是相对流的,可以视为包含整个流的理想化缓冲区的偏移量,并且从头到尾是连续的。 指向包含数据的实际物理缓冲区的任何内部偏移量都需要单独维护。
在播放期间, PlayOffset 和 WriteOffset 值的解释如下:
- PlayOffset 是已播放缓冲区中最后一个字节的偏移量。 PlayOffset + 1 是将播放的下一个字节的偏移量。
- WriteOffset 是播放缓冲区中最后一个字节的偏移量。
在录制期间, PlayOffset 和 WriteOffset 值解释如下:
- PlayOffset 是已捕获的缓冲区中最后一个字节的偏移量。 PlayOffset + 1 是将捕获的下一个字节的偏移量。
- WriteOffset 是捕获缓冲区中最后一个字节的偏移量。
PlayOffset 和 WriteOffset 之间的空间被视为对客户端的限制,因为它表示客户端缓冲区中已发送到驱动程序并且可能仍在由驱动程序使用的部分。
有关详细信息,请参阅 音频位置属性。
要求
要求 | 值 |
---|---|
Header | ksmedia.h (包括 Ksmedia.h) |
另请参阅
KSINTERFACE_STANDARD_LOOPED_STREAMING