信息
您所需的主题如下所示。但此主题未包含在此库中。

MediaStreamSource.ReportGetSampleCompleted 方法

2013/12/13

开发人员调用此方法以响应 GetSampleAsync 以便提供给 MediaElement 下一个要呈现的媒体示例,或者报告流的结尾。

Namespace:  System.Windows.Media
程序集:  System.Windows(位于 System.Windows.dll 中)

protected void ReportGetSampleCompleted(
	MediaStreamSample mediaStreamSample
)

参数

mediaStreamSample
类型: System.Windows.Media.MediaStreamSample
此示例来自的媒体流的说明。 传递 MediaStreamSample,该对象使用 null Stream 属性指示流已结束。

异常条件
ArgumentException

如果未为受保护的播放设置 MediaStreamSource,而且在示例上设置了 DRMAlgorithmID,则在所有情况下都将引发异常,除了 DRMAlgorithmID 等于“Unprotected”的情况。

ArgumentException

如果未为受保护的播放设置 MediaStreamSample,而且在示例上设置了 DRMKeyIdentifier,则在所有情况下都将引发异常,除了 Guid 等于 Guid.Empty 的情况。

ArgumentException

输入 MediaStreamSample 参数中 DRMKeyIdentifier 特性的值设置为 Guid.Empty

或以下条件为 true:

此方法应在请求 GetSampleAsync 之后调用,除非已调用了 ErrorOccurred。可以在此之前调用 ReportGetSampleProgress,以便指示某一示例尚未就绪但必须最终调用此方法。

如果 MediaStreamSample 包含有效 Stream 对象,则 Windows Phone 将查找指向指定偏移的流指针。 当此方法返回时,将读取指定的字节数,而且流的当前位置将前移这些字节。

要报告流的结尾,则使用空流构造 MediaStreamSample 对象并将其传递到 ReportGetSampleCompleted。 报告流的结尾将使 MediaElement 知道,不会有其他示例用于该流。 一旦 MediaElement 为所有流呈现了所有可能的示例,它将自动转换为 PausedStopped 状态,并引发 MediaEnded 事件。

状态转换: 在任何流上调用 ReportGetSampleCompleted 指示缓冲对于媒体已完成,并撤消要处于“缓冲”状态的权限。 如果 MediaElement 处于“缓冲”状态,则对此方法的调用将导致它转换回“播放”状态。

ReportGetSampleCompleted 返回时,基础视频编码解码器不再对由传入的 MediaStreamSample 指向的内存具有所有权,现在该内存可能被视为可在进行调用后的任何时刻被回收或释放。

Windows Phone OS

受以下版本支持: 8.0, 7.1, 7.0

Windows Phone

显示: