C# 电影播放器






4.89/5 (49投票s)
托管 DirectX 电影播放器。

引言
在我发现之前的电影播放器在 Vista 上出现故障后,我开始寻找基于托管 DirectX 的 C# 解决方案。
在使用原始 Vista 的所有尝试都失败了,直到我下载了 2007 年 4 月发布的最新 Microsoft DirectX 9L 版本,才解决了我在 Vista 上遇到的所有问题。
因此,为了在 Vista 上使用此代码(在 XP 下运行没有问题),您必须首先从此处下载最新的 DirectX SDK。
然后您就可以使用 Microsoft.DirectX.AudioVideoPlayback
程序集。
文档
一旦您安装了完整的 DirectX SDK,并且假设您使用默认设置安装了它,您可以在此文件夹中找到有关 AudioVideoPlayback
程序集的文档
C:\Program Files\Microsoft DirectX SDK (April 2007)\Documentation\DirectX9\directx9_m.chm.
使用播放器
zMoviePlayer
能够播放:AVI、MPG、MPEG、WMV、DivX、Xvid(假设您已首先安装正确的 CODEC)。
在“全屏”模式下,将鼠标移动到底部以显示/隐藏“命令面板”。
要选择电影,请使用菜单弹出通用对话框文件选择器,或者使用从资源管理器到 zMoviePlayer
窗体的拖放功能。
Using the Code
播放器的主要 DirectX 类名为 Video
,它非常容易使用。
您可以从 Visual Studio 弹出上下文菜单(获取定义)获取有关它的所有详细信息。
因为我想要一个外观漂亮的界面“类似于 WMP 11”,所以我自己添加了一些类来执行播放器的皮肤美化。 它们是
- SkinButton.cs - 用户控件,用于创建皮肤按钮,使用单个 5 图像位图来匹配每个按钮状态:正常、按下、禁用、聚焦、悬停。
您可以使用“标准”按钮或带有区域的异形按钮。 - SkinTrackbar.cs - 用户控件,用于创建仅鼠标的皮肤滑块。 指针滑块可以基于提供的位图具有任何大小或形状。 控件方向基于宽度和高度之间的比率,如果宽度大于高度,则为水平,否则为垂直。 为了帮助用户了解指针滑块的移动,控件使用不同的颜色来显示当前值。 您可以反转范围交换最小值/最大值。
- SkinEngine.cs - 此类负责绘制皮肤控件。
关注点
为了消除在 Visual Studio 环境中运行时出现的“loaderlock”异常消息
使用“Ctrl + Alt + E”打开“异常”对话框,选择“托管调试助手”并取消选中“Loaderlock”。
历史
于 05-22-2007 更新(版本 1.04)
- 命令行支持(如果存在,也适用于将电影文件从资源管理器拖到播放器的桌面图标上)
- 进程检测:参见
IsAlreadyRunning()
- 图标模式检测,以恢复原始位置(使用命令行时)
- 会话之间保存的音频级别
- 新标签 ShowTime(在全屏模式下运行时查看当前时间)
- 私有
WM_STRINGDATA
消息,用于播放新电影,使用命令行文件名
于 05-15-2007 更新(版本 1.03)
- 此版本将最新使用的文件夹保存到注册表中,并在会话之间检索它,以简化电影选择(当所有电影都存储在专用子文件夹中,并按电影类型排序时非常方便)。
- 高清电影(WMV 高清电影在 Vista 上不起作用)
- 静音问题已修复(即使在 ON 时,播放新电影时也会忽略静音)
请参阅我的其他 C# 演示
http://www.zapsolution.com/winlift/ccorner.htm - 务必尝试“旋转木马”演示!
Patrice Terrier
www.zapsolution.com