IMFSinkWriter::Finalize 方法 (mfreadwrite.h)
完成接收器编写器上的所有写入操作。
语法
HRESULT Finalize();
返回值
如果该方法成功,则返回 S_OK。 否则,将返回 HRESULT 错误代码。
注解
将所有输入样本发送到接收器编写器后调用此方法。 方法执行从媒体接收器创建最终输出所需的任何操作。
如果在创建接收器编写器时提供回调接口,则此方法以异步方式完成。 操作完成后,将调用回调的 IMFSinkWriterCallback::OnFinalize 方法。 有关详细信息,请参阅 MF_SINK_WRITER_ASYNC_CALLBACK。 否则,如果未提供回调, Finalize 方法将阻止,直到操作完成。
在内部,此方法调用 IMFStreamSink::P laceMarker ,以便在媒体接收器上放置每个流的段结束标记。 如果媒体接收器支持 IMFFinalizableMediaSink 接口,它还调用 IMFFinalizableMediaSink::BeginFinalize 和 EndFinalize。
调用此方法后,以下方法将失败:
如果不调用 Finalize,媒体接收器的输出可能不完整或无效。 例如,输出文件中可能缺少所需的文件头。如果安装了适用于 Windows Vista 的平台更新补充,则此接口在 Windows Vista 上可用。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 适用于 Windows Vista 的 Windows 7、Windows Vista 和平台更新补充 [桌面应用 |UWP 应用] |
最低受支持的服务器 | Windows Server 2008 R2 [桌面应用 |UWP 应用] |
目标平台 | Windows |
标头 | mfreadwrite.h |