0

我想知道何时SampleRequested在 UWP 中触发事件。根据 官方文档页面

当 MediaStreamSource 为指定流请求 MediaStreamSample 时发生。

但我想在此请求发生时更详细地了解。例如是什么让这个事件发生?每一帧都有变化?从 RTSP 流接收到的每个数据包?

此外,我想知道是否有一种方法可以“控制”这个事件,即以编程方式触发它,因为我需要MediaStreamSample在特定的时刻并且只需要一次。看起来它在我的 rtsp 流式传输期间发生了多次,影响了我的流式传输的延迟(大约 4000 毫秒延迟)。

谢谢。

4

1 回答 1

0

我没有MediaStreamSource在 UWP 中广泛使用过,所以我只提供一个一般性建议,也许更有经验的人会提供更有用的答案。

我假设媒体播放器控件调用此事件以预加载流,并且您无法控制调用它的频率。但是,您可以控制的是您提供响应的多长时间 -MediaStreamSourceSampleRequestedEventArgs事件 args 具有Request类型为 的属性MediaStreamSourceSampleRequest。您可以使用GetDeferral方法来表明您需要延迟样品的交付,并且仅在特定延迟后才返回。ReportSampleProgress您可以使用方法向用户指示“正在加载” 。完成后,您可以通过调用 来在延期中表明这一点deferral.Complete()

最后,如果您不再想提供任何示例,只需将Sample属性分配给null.

于 2019-07-23T06:49:02.580 回答