0

我正在运行媒体基础示例 MFPlayer 来呈现 URL mms://。

这因错误代码而失败MF_E_INVALIDMEDIATYPE

在此示例的 GetMajorType 中,类型是作为MFMediaType_Image而不是MFMediaType_Video.

  1. 有什么理由让它MFMediaType_Image甚至是视频文件吗?

  2. 如果它来了MFMediaType_Image,如何处理?我尝试过使用相同的代码

它用于渲染视频,但因 ERROR 0xc00d5214( MF_E_TOPO_UNSUPPORTED) 而失败。

  1. 如果我在 wmplayer 中播放相同的 mms://,它不使用 Media Foundation,它使用直接显示来播放相同的内容。在直接展示中,它使用我无法使用的 wmrender 源过滤器,因为没有信息如何使用它。这个 wmrender 源过滤器实际上是做什么的?如何在我的应用程序中使用/创建相同的内容?

  2. 我尝试使用 topoedit 进行渲染。它抛出错误,指出无效的媒体类型。我已阅读媒体基金会支持MMS 协议,而不是为什么它在 topoedit 中失败?

4

1 回答 1

0

对于初学者:

在 Windows Media Player 中播放 mms:// 时,过滤器图如下所示:

mms:// 在 WMP 上

WMP 使用 DirectShow 的事实表明它无法通过 Media Foundation 设置播放。此图上源过滤器的 CLSID 不是公开的,它是 Windows Media Player 的一个内部类:没有记录,甚至无法用于第三方应用程序。

这给你留下了两个选择:

  1. WM ASF 阅读器过滤器
  2. 基于WM 格式 SDK的自定义源过滤器

我已阅读 Media Foundation 支持 MMS 协议

MSDN 文章说 mms:// URL 可以通过翻转来协商 RTSP/HTTP 协议(​​如果可用!)。

于 2013-06-14T10:31:09.863 回答