【问题标题】:C++ DirectShow in Rendering Behavior渲染行为中的 C++ DirectShow
【发布时间】:2010-10-16 13:07:52
【问题描述】:

有谁知道如何在 HTML 容器(例如 DIV)中显示 DirectShow 视频,而不是单独的弹出式窗口。

我已经完成了运行自定义渲染行为所需的所有工作,它包括所有接口和事件处理,但在 Internet 和我的书籍中都找不到与我的问题相关的任何内容。

谁能给我提示我需要做什么?

附: MSDN 文章在 IHTMLPainter 上设置 IFlags 时仅提及 DirectDraw 和 Direct3D - 但也许这是我正在寻找的错误位置:-)

问候。

【问题讨论】:

    标签: rendering directshow behavior


    【解决方案1】:

    总的来说,这是一个混乱的话题。据我所知,您的选择是自定义 activex 控件(哎呀......一般来说,这种方法是一个后勤噩梦)或利用现有的播放器,如 Silverlight 或 Flash。

    Silverlight 无法让您控制 DirectShow 级别,但它通过 MediaStreamSource 提供了额外的支持,可能会满足您的需求。一旦您的音频/视频在 Silverlight 中,您就可以选择各种高级叠加层和界面元素。

    【讨论】:

      【解决方案2】:

      我不会对 Silverlight 发表评论,因为我没有这方面的经验,但我不同意 Kidjan 对使用 ActiveX 控件的总结。

      自定义 ActiveX 控件已为我们公司提供了多种用途 - 包括本机应用程序、托管应用程序、网页 ...

      使用 ActiveX 控件的好处在于您可以完全控制播放器中的代码、流身份验证机制、渲染功能等。

      我在不到一个月的时间内编写了一个完整的播放器(包括网络代码),然后在不到一周的时间内将其封装在 COM 控件中。

      不要幻想,DirectShow 和 COM 编程并不容易。这一切都与权衡有关 - Flash 或 Silverlight 解决方案可能会让您快速上手。 ActiveX ctrl 将为您提供完全的控制权。

      我还了解到 HTML5 标准将包括对嵌入视频内容的支持(!)可能值得研究,尽管我不知道有多少浏览器支持(新兴)标准。

      【讨论】:

      • 不要误会我的意思——我认为 ActiveX 控件是一个可行的解决方案——但它需要安装程序和验证(即签名),这是许多企业不愿为他们的在线流媒体解决方案。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多