IMFPMediaPlayer::CreateMediaItemFromURL 方法 (mfplay.h)
从 URL 创建媒体项。
语法
HRESULT CreateMediaItemFromURL(
[in] LPCWSTR pwszURL,
[in] BOOL fSync,
[in] DWORD_PTR dwUserData,
[out] IMFPMediaItem **ppMediaItem
);
parameters
[in] pwszURL
包含媒体文件的 URL 的以 Null 结尾的字符串。
[in] fSync
如果 为 TRUE,方法将阻止,直到完成。 如果 为 FALSE,则该方法不会阻止并异步完成。
[in] dwUserData
要存储在媒体项中的应用程序定义值。 若要从媒体项检索此值,请调用 IMFPMediaItem::GetUserData。
[out] ppMediaItem
接收指向 IMFPMediaItem 接口的指针。 调用方必须释放接口。 如果 fSync 为 TRUE,则此参数必须是有效的指针。 如果 bSync 为 FALSE,则此参数必须为 NULL。
返回值
该方法返回 HRESULT。 可能的值包括(但并不限于)下表中的项。
返回代码 | 说明 |
---|---|
|
方法成功。 |
|
无效的参数。 |
|
请求无效。 当 fSync 为 FALSE 且应用程序未提供回调接口时,可能会发生此错误。 请参阅“备注”。 |
|
调用了对象的 Shutdown 方法。 |
|
不支持的协议。 |
注解
此方法不会将媒体项排队以供播放。 若要将项目排队以供播放,请调用 IMFPMediaPlayer::SetMediaItem。
CreateMediaItemFromURL 方法可以同步或异步调用:
- 如果 fSync 为 TRUE,则该方法以同步方式完成。 IMFPMediaItem 指针在 ppMediaItem 参数中返回。
- 如果 fSync 为 FALSE,则该方法以异步方式完成。 操作完成后,将调用应用程序的 IMFPMediaPlayerCallback::OnMediaPlayerEvent 回调方法。 事件类型为 MFP_EVENT_TYPE_MEDIAITEM_CREATED。 事件数据包含新媒体项的 IMFPMediaItem 指针。
如果对 CreateMediaItemFromURL 进行多次异步调用,则不能保证它们按相同的顺序完成。 使用 dwUserData 参数将创建的媒体项与挂起的请求匹配。
目前,如果 URL 指定以下任一协议(rtsp*、mms*或 mcast),此方法将返回 MF_E_UNSUPPORTED_SCHEME 。 如果要将 Media Foundation 网络源与 MFPlay 配合使用,请先使用 源解析程序 创建源,然后调用 IMFPMediaPlayer::CreateMediaItemFromObject。
配置源
此方法在内部创建媒体源。 若要配置媒体源,请执行以下操作:- 在 IMFPMediaPlayer 指针上调用 QueryInterface 以获取 IPropertyStore 接口。
- 调用 IPropertyStore::SetValue 以设置媒体源的属性。 有关配置属性的列表,请参阅 配置媒体源。 第三方媒体源可以定义自定义属性。
- 调用 CreateMediaItemFromURL 方法以创建媒体项。
要求
最低受支持的客户端 | Windows 7 [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2008 R2 [仅限桌面应用] |
目标平台 | Windows |
标头 | mfplay.h |
另请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈