IMFByteStreamBuffering 接口 (mfidl.h)
控制字节流如何缓冲来自网络的数据。
若要获取指向此接口的指针,请对字节流对象调用 QueryInterface 。
继承
IMFByteStreamBuffering 接口继承自 IUnknown 接口。 IMFByteStreamBuffering 还具有以下类型的成员:
方法
IMFByteStreamBuffering 接口具有这些方法。
IMFByteStreamBuffering::EnableBuffering 启用或禁用缓冲。 |
IMFByteStreamBuffering::SetBufferingParams 设置缓冲参数。 |
IMFByteStreamBuffering::StopBuffering 停止正在进行的任何缓冲。 |
注解
如果字节流实现此接口,媒体源可以使用它来控制字节流如何缓冲数据。 此接口适用于从网络读取数据的字节流。
实现此接口的字节流还应实现 IMFMediaEventGenerator 接口。 当字节流开始缓冲时,它会发送 MEBufferingStarted 事件。 停止缓冲时,会发送 MEBufferingStopped 事件。
字节流必须为每个 MEBufferingStarted 事件发送匹配 的 MEBufferingStopped 事件。 字节流不得发送 MEBufferingStarted 事件,除非媒体源通过调用值为 TRUE 的 EnableBuffering 启用了缓冲。
字节流发送 MEBufferingStarted 事件后,如果发生以下任一情况,它应发送 MEBufferingStopped :
- 字节流完成缓冲数据。
- 字节流到达流的末尾。
- 媒体源调用值为 FALSE的 EnableBuffering。
- 媒体源调用 StopBuffering。
如果禁用缓冲,则字节流不会发送任何缓冲事件。 但是,在内部,它可能会在等待 I/O 请求完成时缓冲数据。 因此, IMFByteStream 方法可能需要无限长的时间才能完成。
如果字节流在内部缓冲数据,并且媒体源调用值为 TRUE 的 EnableBuffering,则字节流可以立即发送 MEBufferingStarted。
开始演示后,媒体源应转发并在启动时收到的 MEBufferingStarted 和 MEBufferingStopped 事件。 媒体会话将在缓冲正在进行时暂停演示时钟,并在缓冲完成时重启演示时钟。 媒体源应仅在播放演示文稿时转发这些事件。 将这些事件发送到媒体会话的目的是在源缓冲数据时暂停演示时间。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows Vista [桌面应用 | UWP 应用] |
最低受支持的服务器 | Windows Server 2008 [桌面应用 | UWP 应用] |
目标平台 | Windows |
标头 | mfidl.h |