MFCreateSinkWriterFromURL 函数 (mfreadwrite.h)
从 URL 或字节流创建接收器编写器。
语法
HRESULT MFCreateSinkWriterFromURL(
[in] LPCWSTR pwszOutputURL,
[in] IMFByteStream *pByteStream,
[in] IMFAttributes *pAttributes,
[out] IMFSinkWriter **ppSinkWriter
);
参数
[in] pwszOutputURL
一个以 null 结尾的字符串,其中包含输出文件的 URL。 此参数可以为 NULL。
[in] pByteStream
指向字节 流的 IMFByteStream 接口的指针。 此参数可以为 NULL。
如果此参数是有效的指针,则接收器编写器将写入提供的字节流。 (字节流必须是可写的。) 否则,如果 pByteStream 为 NULL,接收器编写器将创建名为 pwszOutputURL 的新文件。
[in] pAttributes
指向 IMFAttributes 接口的 指针。 可以使用此参数配置接收器编写器。 有关详细信息,请参阅 接收器编写器属性。 此参数可以为 NULL。
[out] ppSinkWriter
接收指向 IMFSinkWriter 接口的指针。 调用方必须释放接口。
返回值
此函数可以返回其中一个值。
返回代码 | 说明 |
---|---|
|
成功。 |
|
找不到指定的 URL。 |
注解
在调用此函数之前,调用 CoInitialize (Ex) 和 MFStartup 。
此函数的前三个参数可以为 NULL;但是,只有某些组合有效:
说明 | pwszOutputURL | pByteStream | pAttributes |
---|---|---|---|
指定没有 URL 的字节流。 | NULL | 非 NULL | 必需的 () 不得为 NULL 。 |
指定不带字节流的 URL。 | 非 null | NULL | 可选 (可以为 NULL) 。 |
同时指定 URL 和字节流。 | 非 NULL | 非 NULL | 可选 (可以为 NULL) 。 |
pAttributes 参数在第一种情况下是必需的,其他情况下是可选的。
- 案例 1:指定不带 URL 的字节流。 pAttributes 参数必须指向包含 MF_TRANSCODE_CONTAINERTYPE 特性的属性存储区。 接收器编写器使用 MF_TRANSCODE_CONTAINERTYPE 属性来确定要写入的文件容器的类型,例如 ASF 或 MP4。
- 案例 2:指定不含字节流的 URL。 接收器编写器创建名为 pwszOutputURL 的新文件。 如果 pAttributes 指定具有 MF_TRANSCODE_CONTAINERTYPE 属性的属性存储区,则接收器编写器使用该特性来确定文件容器的类型。 否则,如果 MF_TRANSCODE_CONTAINERTYPE 属性不存在或 pAttributes 为 NULL,则接收器编写器使用文件扩展名来选择容器类型;例如,ASF 文件的“.asf”。
- 案例 3:指定 URL 和字节流。 接收器编写器写入字节流。 pwszOutputURL 中提供的 URL 仅供信息使用;接收器编写器不会创建新文件。 如果 pAttributes 指定具有 MF_TRANSCODE_CONTAINERTYPE 属性的属性存储区,则接收器编写器使用该特性来确定文件容器的类型。 否则,接收器编写器使用文件扩展名来选择容器类型。 在本例中,MF_TRANSCODE_CONTAINERTYPE 属性将替代 URL 文件扩展名。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 适用于 Windows Vista 的 Windows 7、Windows Vista 和平台更新补充 [桌面应用 |UWP 应用] |
最低受支持的服务器 | Windows Server 2008 R2 [桌面应用 |UWP 应用] |
目标平台 | Windows |
标头 | mfreadwrite.h |
Library | Mfreadwrite.lib |
DLL | Mfreadwrite.dll |