当前位置:首页 > C#播放器设计报告
青岛理工大学琴岛学院
设 计 报 告
课题名称:播放器
青岛理工大学琴岛学院教务处
2013年 10 月 28 日
一、播放器的功能
(1)用windows media player设计一个画面简洁的媒体播放器,listBox用作曲目列表框。
(2)通过添加按钮既可以一次性添加一首歌曲,通过鼠标单机listbox列表中列表项就可以播放指定的曲目。
(3)实现了对listbox中的曲目的播放控制,可以播隐藏播放列表、放下一曲、播放上一曲以及随机播放的功能。
(3)实现了播放器的暂停、继续、停止、声音的音量调节、声音的有无、视频画面的时间进度、播放画面的快进和快退功能。 (4)能够播放.avi、.Mp4、.rmvb等多种格式。 二、程序设计流程图(如图一)
程序开始
用户界面、按钮等控件
为界面、按钮等控件设置属性
添加程序代码
调式程
运行结束
图一程序设计流程图
二.核心代码
(1)添加曲目列表方法
OpenFileDialog openFileDialog = new OpenFileDialog();//打开对话框 if (openFileDialog.ShowDialog() == DialogResult.OK)
{ string fileName = openFileDialog.FileName;//文件的路径
listBox1.Items.Add(fileName);//将打开的文件添加到listbox列表中 (2)下面方法实现当了点击listbox列表,可以播放选中的曲目 private void listBox1_SelectedIndexChanged() {//将选中的曲目的路径值付给URL
this.axWindowsMediaPlayer1.URL = listBox1.Text;
this.axWindowsMediaPlayer1.Ctlcontrols.play();//播放该曲目 }
(3)下列是实现暂停、继续、停止、声音的有无、音量的增大或减小、快进、快退、播放下一曲、播放上一曲及视频显示时间功能的主要的核心代码。
this.axWindowsMediaPlayer1.Ctlcontrols.pause();//实现了播放的暂停功
this.axWindowsMediaPlayer1.Ctlcontrols.play();//实现了播放功能 this.axWindowsMediaPlayer1.Ctlcontrols.stop();//实现停止播放 this.axWindowsMediaPlayer1.settings.mute = true;//设置静音 this.axWindowsMediaPlayer1.settings.mute = false;//有声音 this.axWindowsMediaPlayer1.settings.volume += 10;//每次以10个单位增大音量
this.axWindowsMediaPlayer1.settings.volume += 10;//每次以10个单位
减小音量
this.axWindowsMediaPlayer1.Ctlcontrols.currentPosition += 10;//每次以10秒的进度进行快进
this.axWindowsMediaPlayer1.Ctlcontrols.currentPosition += 10;// 每次以10秒的进度进行倒退。
this.axWindowsMediaPlayer1.Ctlcontrols.previous();//实现播放上一曲功能
this.axWindowsMediaPlayer1.Ctlcontrols.next();//播放下一曲功能 this.axWindowsMediaPlayer1.Ctlcontrols.currentPositionString;//视频当前显示时间
this.axWindowsMediaPlayer1.currentMedia.durationString;//视频的总长度的时间
(4)随机播放方法通过Random函数实现
private void btn随机播放_Click(object sender, EventArgs e) {Random r = new Random(); //Random的实例化对象r
int Count = listBox1.Items.Count;//整个listbox曲目数
//URl随机产生的路径值是在0到count之间
axWindowsMediaPlayer1.URL=listBox1.Items[r.Next(0,Count)]. ToString() }
三.遇到的问题及解决方法
(1)在自己电脑上做的视频播放器不能在机房播放,总是出现提示“警告”“IWMPGraphEventHandler.NotifyAcquireCredentials”的至少一个参数不能由运行时封送拆收器进行封送处理,是因为在托管代码中使用非托管代码将造成第二个警告,要消除这一警告,必须想办法用托管代码去实现这段非托管代码的功能。
(2)在实现视频播放功能的过程中无法播放,经过网上搜索资料才明白必须用this.axWindowsMediaPlayer1.URL来进行指定要播放的曲目的路径。
(3)在快进和快退这一功能的实现中一直认为Ctlcontrols.fastForward和Ctlcontrols.fastReverse实现快进和快退,不过没有实现,最终找到了另一个解决法Ctlcontrols.currentPosition来进行控制视频播放进度。 四、总结
这是我做的C#winform程序又一收获。要做好一个Windows Meida Player视频播放器,必须要有一个清晰的思路和一个完整的的设计流程图;在设计程序时,不能妄想一次就将整个程序设计好,反复修改、不断改进是程序设计的必经之路;要养成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你的思路;在设计过程中遇到问题是很正常的,我每次将一些遇到的问题记录下来,并分析清楚,以免下次再碰到同样的问题,从中学到的知识让我受益终身。发现、提出、分析、解决问题和实践能力的提高都会受益于我在以后的学习、工作和生活中。设计过程,难免会遇到各种各样的问题。在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握
得不够牢固。我通过查阅大量有关资料,并和同学中互相讨论,交流经验和自学,若遇到实在搞不明白的问题就会及时请教老师,使自己学到了不少知识,也经历了不少艰辛,但收获同样巨大。通过这次Winform程序设计,我也发现了自身存在的不足之处,虽然感觉理论上已经掌握,但在运用到实践的过程中仍有意想不到的困惑,经过一番努力才得以解决。这也激发了我今后努力学习的兴趣,我想这将对我以后的学习产生积极的影响。通过这次设计,我懂得了学习的重要性,了解到理论知识与实践相结合的重要意义,学会了坚持、耐心和努力,这将为自己今后的学习和工作做出了最好的榜。
共分享92篇相关文档