我正在开发一个项目,用于在窗体中检索/显示不同类型的媒体。基本上,用户使用OpenFileDialog选择图像,视频,音频或txt文件,然后该程序将存储在List中。 (我创建的自定义类为每种类型的媒体,所有从一个单一的界面实现。)以C#形式动态添加WindowsMediaPlayer
形式需要持有一个可以通过与下一首/后退按钮被分页这些文件中的“预览”。然而,由于表单并不知道它是什么类型的媒体,所以我在表单上放置了一个Panel,然后将该Panel的引用发送到我的IMedia.DisplayMedia方法,并且每个类负责绘制它自己的在面板中的表示。 (例如一个图片或RichTextField)
对于文本和我创建了一个代码控制图像,然后加入他们使用:
myPanel.Controls.Add(myControl);
但是,我不能为Windows做,因为WMPLib .WindowsMediaPlayer不从控件继承。
任何想法如何实现这一目标?我没有和WMP结婚,我只需要播放大多数标准视频/音频格式的东西。
谢谢。
好的,已解决。我不得不使用AxWindowsMediaPlayer类,但我遇到的问题(请参阅@LightStriker注释)是我在添加要构建的对象之前尝试设置URL。最终的代码: '公共无效DisplayMedia(控制displayArea) '{ 'displayArea.Controls.Clear(); 'axWMPLib.AxWindowsMediaPlayer wmp = '新的AxWMPLib.AxWindowsMediaPlayer(); 'displayArea.Controls.Add(wmp); 'wmp.URL = filePath; //(类变量) 'wmp.Size = displayArea.Size; '} –