IMFPMediaPlayer::CreateMediaItemFromURL 方法 (mfplay.h)

重要 废弃。 此 API 可能会从 Windows 的未来版本中删除。 应用程序应使用 媒体会话 进行播放。
 

从 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 接口的指针。 调用方必须释放接口。 如果 fSyncTRUE,则此参数必须是有效的指针。 如果 bSyncFALSE,则此参数必须为 NULL

返回值

该方法返回 HRESULT。 可能的值包括(但并不限于)下表中的项。

返回代码 说明
S_OK
方法成功。
E_INVALIDARG
无效的参数。
MF_E_INVALIDREQUEST
请求无效。 当 fSyncFALSE 且应用程序未提供回调接口时,可能会发生此错误。 请参阅“备注”。
MF_E_SHUTDOWN
调用了对象的 Shutdown 方法。
MF_E_UNSUPPORTED_SCHEME
不支持的协议。

注解

此方法不会将媒体项排队以供播放。 若要将项目排队以供播放,请调用 IMFPMediaPlayer::SetMediaItem

CreateMediaItemFromURL 方法可以同步或异步调用:

  • 如果 fSyncTRUE,则该方法以同步方式完成。 IMFPMediaItem 指针在 ppMediaItem 参数中返回。
  • 如果 fSyncFALSE,则该方法以异步方式完成。 操作完成后,将调用应用程序的 IMFPMediaPlayerCallback::OnMediaPlayerEvent 回调方法。 事件类型为 MFP_EVENT_TYPE_MEDIAITEM_CREATED。 事件数据包含新媒体项的 IMFPMediaItem 指针。
回调接口是在首次调用 MFPCreateMediaPlayer 以创建 MFPlay 播放器对象时设置的。 如果未提供回调接口, 则 fSync 参数必须为 TRUE。 否则, CreateMediaItemFromURL 返回 MF_E_INVALIDREQUEST

如果对 CreateMediaItemFromURL 进行多次异步调用,则不能保证它们按相同的顺序完成。 使用 dwUserData 参数将创建的媒体项与挂起的请求匹配。

目前,如果 URL 指定以下任一协议(rtsp*、mms*或 mcast),此方法将返回 MF_E_UNSUPPORTED_SCHEME 。 如果要将 Media Foundation 网络源与 MFPlay 配合使用,请先使用 源解析程序 创建源,然后调用 IMFPMediaPlayer::CreateMediaItemFromObject

配置源

此方法在内部创建媒体源。 若要配置媒体源,请执行以下操作:
  1. IMFPMediaPlayer 指针上调用 QueryInterface 以获取 IPropertyStore 接口。
  2. 调用 IPropertyStore::SetValue 以设置媒体源的属性。 有关配置属性的列表,请参阅 配置媒体源。 第三方媒体源可以定义自定义属性。
  3. 调用 CreateMediaItemFromURL 方法以创建媒体项。

要求

   
最低受支持的客户端 Windows 7 [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 R2 [仅限桌面应用]
目标平台 Windows
标头 mfplay.h

另请参阅

IMFPMediaPlayer

使用 MFPlay 进行音频/视频播放