在WinForms应用程序中嵌入视频

13

我需要在一个C#的WinForms应用程序中嵌入并控制播放AVI文件,视频需要嵌入到表单中,而不是在单独的媒体播放器窗口中打开。

如何实现最佳效果?我找到了System.Media命名空间,听起来很有希望,但似乎只适用于声音。

我是否应该使用DirectX来完成这个任务?还是MCI?或者其他方法?

5个回答

8
你可以在Winform中使用媒体播放器。这是一种简单的方法。

5
我所采用的方法是,引用如下:
右键单击工具箱,然后选择"选择项"。注意:如果您看不到工具箱,请单击视图菜单上的工具箱以打开它。将打开"自定义工具箱项"对话框。
在COM组件选项卡上,选中Windows Media Player复选框,然后单击确定。
Windows Media Player控件将出现在当前工具箱选项卡上。
当您将Windows Media Player控件添加到工具箱时,Visual Studio会自动添加两个库的引用:AxWMPLib和WMPLib。下一步是将控件添加到Windows窗体中。
要将Windows Media Player控件添加到Windows窗体中
从工具箱中将Windows Media Player控件拖到Windows窗体上。
在属性窗口中,将Dock属性设置为Fill。您可以通过单击中心正方形来完成此操作。
双击窗体的标题栏以在代码编辑器中添加默认的Load事件。
将以下代码添加到Form_Load事件处理程序中,在应用程序打开时加载视频。
axWindowsMediaPlayer1.URL = 
    @"http://go.microsoft.com/fwlink/?LinkId=95772";

http://msdn.microsoft.com/en-us/library/bb383953(v=vs.90).aspx


4

谢谢。您可能也回答了这个问题:http://stackoverflow.com/questions/2464613/looking-for-a-component-net-or-com-activex-that-can-play-avi-files-in-a-winfor - MusiGenesis
你有用过这个吗?看起来示例应用程序可以满足我的需求,但是DirectShow.NET的示例应用程序对我来说没有太多意义。我可以运行它并播放文件,它会自动循环,但所有这些都是在内部完成的,我找不到任何方法来修改它以连续播放多个文件。 - MusiGenesis

0

DaokBrian Genisio的建议都是不错的选择。让我再加一个第三个:DirectShow。它曾经是DirectX的一部分,但现在已经被提升为Windows SDK的一部分。有很多好的C#示例应用程序可以参考,它可以完全控制播放。


-1

我会考虑使用WPF媒体控件,并使用ElementHost将您的WPF控件放置在WinForms应用程序中。我认为您将获得更丰富的体验。

有关更多信息,请参见System.Windows.Forms.Integration


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接