【发布时间】:2012-11-21 01:09:02
【问题描述】:
我正在开展一个项目,该项目旨在检索/显示表单中不同类型的媒体。基本上,用户使用 OpenFileDialog 选择图像、视频、音频或 txt 文件,然后程序会将它们存储在 List 中。 (我为每种类型的媒体创建了自定义类,它们都从一个接口实现。)
表单需要保存这些文件的“预览”,这些文件可以通过下一步/后退按钮进行翻页。但是,由于表单不知道它将是什么类型的媒体,所以我在表单上放置了一个面板,然后将该面板的引用发送给我的 IMedia.DisplayMedia 方法,每个类负责绘制自己的面板中的代表。 (例如 PictureBox 或 RichTextField。)
对于文本和图像,我在代码中创建了控件,然后使用以下方法添加它们:
myPanel.Controls.Add(myControl);
但是,我不能对 Windows 执行此操作,因为 WMPLib.WindowsMediaPlayer 不从控件继承。
任何想法如何实现这一目标?我没有嫁给 WMP,我只需要能够播放大多数标准视频/音频格式的东西。
谢谢。
【问题讨论】:
-
好的,已解决。我确实必须使用 AxWindowsMediaPlayer 类,但我遇到的问题(请参阅@LightStriker cmets)是我尝试在将对象添加到表单之前设置 URL。最终代码:
public void DisplayMedia(Control displayArea){ ` displayArea.Controls.Clear(); ` axWMPLib.AxWindowsMediaPlayer wmp = ` new AxWMPLib.AxWindowsMediaPlayer();displayArea.Controls.Add(wmp);wmp.URL = 文件路径; //(类变量)wmp.Size = displayArea.Size;}
标签: c# media windows-media-player