0

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

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

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

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

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

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

4

1 回答 1

3

我真的希望不是答案:

DirectShow 和 Windows Media Player 允许使用 URL 而不是文件名来播放视频。您可以在您的应用程序中创建一个线程,该线程在动态套接字上侦听环回适配器 (127.0.0.1) 上的 HTTP 请求,并且只接受来自您的应用程序的请求(查看标头或在标识请求的 url 中放置一些内容)。然后您可以将资源读入内存并通过 Web 请求将其反馈回来。

——来自比尔·赖斯 MVP

发现于:

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

这远程可能吗?

于 2010-03-17T01:35:56.580 回答