IMFSinkWriter::Finalize 方法 (mfreadwrite.h)

完成接收器编写器上的所有写入操作。

语法

HRESULT Finalize();

返回值

如果该方法成功,则返回 S_OK。 否则,将返回 HRESULT 错误代码。

注解

将所有输入样本发送到接收器编写器后调用此方法。 方法执行从媒体接收器创建最终输出所需的任何操作。

如果在创建接收器编写器时提供回调接口,则此方法以异步方式完成。 操作完成后,将调用回调的 IMFSinkWriterCallback::OnFinalize 方法。 有关详细信息,请参阅 MF_SINK_WRITER_ASYNC_CALLBACK。 否则,如果未提供回调, Finalize 方法将阻止,直到操作完成。

在内部,此方法调用 IMFStreamSink::P laceMarker ,以便在媒体接收器上放置每个流的段结束标记。 如果媒体接收器支持 IMFFinalizableMediaSink 接口,它还调用 IMFFinalizableMediaSink::BeginFinalizeEndFinalize

调用此方法后,以下方法将失败:

如果不调用 Finalize,媒体接收器的输出可能不完整或无效。 例如,输出文件中可能缺少所需的文件头。

如果安装了适用于 Windows Vista 的平台更新补充,则此接口在 Windows Vista 上可用。

要求

要求
最低受支持的客户端 适用于 Windows Vista 的 Windows 7、Windows Vista 和平台更新补充 [桌面应用 |UWP 应用]
最低受支持的服务器 Windows Server 2008 R2 [桌面应用 |UWP 应用]
目标平台 Windows
标头 mfreadwrite.h

另请参阅

IMFSinkWriter

接收器编写器