【问题标题】:Can the Windows Media Player COM control play AVI files from memory (instead of from a file)?Windows Media Player COM 控件可以从内存(而不是文件)播放 AVI 文件吗?
【发布时间】:2011-01-28 09:31:58
【问题描述】:

我有一个 C# 应用程序,我正在考虑使用 Windows Media Player COM 控件来播放动画和音频。到目前为止,我看到的以编程方式控制控件正在播放的唯一方法是将其 URL 属性设置为指向某个文件(我假设有某种方法可以传入播放列表)。

WMP 有什么方法可以渲染完全在内存中的 AVI,比如 MemoryStream 之类的吗?如果是这样,WMP 是否可以无缝地从一个 AVI 跳到下一个(即从一个转换到另一个时音频或视频中没有故障)?

如果 WMP 只播放文件,有没有办法在播放开始前提示文件列表?如果是这样,是否可以让 WMP 从一个文件跳到下一个文件而不会出现短暂的中断?

任何知识或知识链接将不胜感激。

编辑:或者,是否有任何第三方控件可以做到这一点?澄清一下,我真正需要的是一个控件,它可以播放一系列 AVI 文件(内存中或磁盘),并在从一个文件转换到下一个文件时无缝播放视频和音频(所以没有轻微的文件之间的故障或暂停)。 WMP 似乎关闭了音频引擎,然后在每个文件之间重新打开(这会导致微小的“爆裂”噪音),所以我什至不确定 WMP 是否可以满足我的需求。

编辑 2:没关系。我只是尝试拆分一个 AVI 文件,然后在播放列表中连续播放这些片段,这比微小的“流行”噪音要糟糕得多。它停顿了将近一秒钟。我不认为 WMP 是为了做我需要它做的事情而构建的。

【问题讨论】:

    标签: c# winforms com windows-media-player wmp


    【解决方案1】:

    我真的希望这不是答案:

    DirectShow 和 Windows 媒体播放器 允许使用 URL 而不是文件名 播放视频。你可以创建一个 在您的应用程序中侦听的线程 用于 HTTP 请求的动态套接字 环回适配器 (127.0.0.1) 和 只接受来自您的应用的请求 (查看标题或放一些东西 在标识 要求)。然后你可以阅读 资源进入内存并反馈 通过网络请求。

    -来自 Bill Reiss MVP

    发现于:

    http://social.msdn.microsoft.com/Forums/en-US/csharpgeneral/thread/5ffb0aa2-d2b3-44d0-985c-f1d3034711b5

    这远程可行吗?

    【讨论】:

    • 我希望有人告诉我没有办法,所以我不会浪费任何时间尝试它。如果是这样,那将是一个巨大的黑客攻击。 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多