C#播放器设计报告

更新时间:2023-11-10 03:07:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

青岛理工大学琴岛学院

设 计 报 告

课题名称:播放器

青岛理工大学琴岛学院教务处

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程序设计,我也发现了自身存在的不足之处,虽然感觉理论上已经掌握,但在运用到实践的过程中仍有意想不到的困惑,经过一番努力才得以解决。这也激发了我今后努力学习的兴趣,我想这将对我以后的学习产生积极的影响。通过这次设计,我懂得了学习的重要性,了解到理论知识与实践相结合的重要意义,学会了坚持、耐心和努力,这将为自己今后的学习和工作做出了最好的榜。

本文来源:https://www.bwwdw.com/article/v89v.html

Top