




已阅读5页,还剩28页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
c#程序设计设计说明书媒体播放器的设计与实现学生姓名学号 班级计算机(1)班成绩指导教师 计算机科学与技术c#课程设计评阅书题目媒体播放器的设计与实现姓名马林彪学号 1006111057成绩指导教师评语指导教师签名: 年 月 日 课程设计任务书20112012学年第一学期专业: 计算机科学与技术 学号: 1006111057 姓名: 马林彪 课程设计名称: c#课程设计 设计题目: 媒体播放器的设计与实现 完成期限:自 2011 年 xx月 xx 日至 2011 年 xx 月 xx 日共 x 周设计依据、要求及主要内容(可另加附页):根据程序设计所学知识,设计与实现一个媒体播放器,该xxx设计的内容和功能要求如下:(1) 用windows media player设计一个画面简洁的媒体播放器,listbox用作曲目列表框;(2) 通过按钮既可以一次性添加一首歌曲,也可以通过文件夹一次性添加多首歌曲等;(3) 在下次播放时仍保留上次播放的的曲目;(4) 可一次性删除一首或多首歌曲;(5) listbox有快捷菜单,该菜单包含能:播放、暂停、删除、单曲循环、顺序播放、 随机播放、全部循环和退出;要求:系统功能设计基本完善,并写出详细的设计说明书。(6) 能够播放mp3和dat格式的音乐或mv;指导教师(签字): 批准日期: 年 月 日摘 要 关键词:媒体播放器; 删除; 循环;目录1课题描述12程序设计流程图12.1 系统说明12.2主界面的设计13 功能的设计13.1 xx功能的设计13.2 xx功能的设计13.3 xx功能的设计14测试14.1系统测试14.2 调试结果14.3 错误原因分析1总结1参考文献1附录:1源代码:1 31 / 331课题描述 构建一个简单的播放器提供播放、暂停、删除等功能,支持多种格式,窗体上有7个按钮,一个mediar player播放器控件和一个listbox控件 用来显示曲目。2程序设计流程图为界面、按钮等控件设置属性用户界面、按钮等控件程序开始 调式程序添加程序代码运行结束2.1 系统说明在visual studio 2008中的c# 语言设计环境下设计出简单的计算器的window 窗体。2.2主界面的设计3 功能的设计功能简介:(1)添加到播放列表:在列表区域单击右键中的“添加到播放列表”,弹出打开本地文件的窗口,可一次添加一首或多首歌曲到播放列表中。(2)播放:选择歌曲,在右键菜单中播放歌曲,即可播放选中的歌曲;双击选中的歌曲也可以实现播放功能;直接点击播放器中的“播放”也可播放选中的歌曲。(3)删除单曲:选择要删除的歌曲,单击“删除单曲”,即可从列表中删除此歌曲。(4)单曲循环:在曲目列表框中,右击鼠标弹出快捷菜单,选中歌曲,右键,选中“单曲循环”,即可重复播放选中的歌曲。(5)退出:单击“退出”即可退出本系统。(6)上一曲:单击“上一曲”即可播放选中歌曲的上一曲。(7)下一曲:单击“下一曲”即可播放选中歌曲的下一首。 (8) 全曲循环:在曲目列表框中,右击鼠标弹出快捷菜单,选中歌曲,单击“全部循环”,即可全部循环。(9) 顺序播放:单击“顺序播放”,即可既可按列表顺序依次自动播放。(10)删除歌曲:在曲目列表框中,右击鼠标弹出快捷菜单,单击“删除歌曲”既可删除所选中的一首或多首歌曲;(11)随即播放:在曲目列表框中,右击鼠标弹出快捷菜单,单击“随机播放”既可自动实现随机播放列表中的歌曲;(12)暂停/播放/退出:在曲目列表框中,右击鼠标弹出快捷菜单,单击“暂停”、“播放”、“退出”既可实现; 1. 操作界面显示: 播放器的主界面如下, 单击“添加歌曲”,实现播放功能双击歌曲,即可实现播放,如下,主要方法:3.1 添加歌曲功能的设计private void btnaddfile_click(object sender, eventargs e) int i; odlgmedia.filename = ; / 设置默认文件名 if (odlgmedia.showdialog() = dialogresult.ok) string path = odlgmedia.filename; fileinfo f = new fileinfo(path); addfile(f.fullname); string strfile = convert.tostring(numofmusic); for (i = 1; i = 0) openbtn(); 3.2 添加目录功能的设计private void btnaddfiles_click(object sender, eventargs e) fbdlgmedia.shownewfolderbutton = true; fbdlgmedia.description = 请选择媒体文件目录:; fbdlgmedia.shownewfolderbutton = false; if (fbdlgmedia.showdialog() = dialogresult.ok) addfiles(fbdlgmedia.selectedpath, lstfilelist); if (lstfilelist.items.count 0) openbtn(); 3.3删除单曲 private void btndelete_click(object sender, eventargs e) int i = lstfilelist.selectedindex; if (lstfilelist.selectedindex = 0) if (selectone = lstfilelist.selectedindex) & (mediaplayer.url != ) messagebox.show(不能删除正在播放的文件, 错误); else delfile(i + 1); lstfilelist.items.removeat(i); if (i 0) if (lstfilelist.selectedindex -1) if (j = 0) selectone = 0; else j -= 1; selectone = j; play(selectone); lstfilelist.selectedindex = j; 36下一曲private void btnforward_click(object sender, eventargs e) int j = lstfilelist.selectedindex; if (j = 0) object selected_objs = new objectlstfilelist.selecteditems.count; lstfilelist.selecteditems.copyto(selected_objs, 0); foreach (object oval in selected_objs) string msg = lstfilelist.itemslstfilelist.selectedindex.tostring(); string strs = msg.split(/); string s = strs1 + strs0; if (mediaplayer.url = s) this.text = null; mediaplayer.url = null; lstfilelist.items.remove(oval); this.text = 播放停止!; else lstfilelist.items.remove(oval); 3.9时钟:tmrmediaprivate void tmrmedia_tick(object sender, eventargs e) if (lstfilelist .selectedindex = lstfilelist.items.count) lstfilelist.selectedindex = selectone-1; mediaplayer.ctlcontrols.stop(); this.text = 媒体播放器:停止!; / tmrmedia.stop(); else lstfilelist.selectedindex = selectone; play(selectone); label1.text = 顺序播放; if (playone = 3) random m = new random(); selectone = m.next(lstfilelist.items.count); lstfilelist.selectedindex = -1; lstfilelist.selectedindex = selectone; play(selectone); label1.text = 随机播放; if (playone = 4) lstfilelist.selectedindex = -1; selectone += 1; if (selectone =lstfilelist .items .count ) selectone = 0; lstfilelist.selectedindex = selectone; play(selectone); label1.text = 全部循环; 4测试4.1系统测试4.2 调试结果4.3 错误原因分析错误原因:lstfilelist.selectedindex = selectone;超出了lstfilelist .items .count的范围总结经过一周的课程设计,使我对visual c#编程有了更深一层的了解。经过编程与不断调试,尽管依然存在很多的问题,但努力终于有了成果。设计的是简单媒体播放器程序。整个设计的过程也是不断学习的一个过程,在运用旧知识的同时也学到了不少新知识,给自己大脑充电的同时也填补了一些相关知识方面的空白。整个设计的过程中,不仅仅只是经历了是失败与成功所带来的启迪,还有同学之间互相帮助的友谊。通过这次课程设计,掌握住到了应该掌握住的知识,也让体会到了生活中应该体会到的东西。总之,这次实习是有收获的。 参考文献1 马靖善等.c语言程序设计.清华大学出版社,20052 谭浩强.c语言程序设计(第二版).北京:高等教育出版社,20023 黄超.c语言程序设计.北京.人民邮电出版社.20034 谭浩强等.c语言程序设计.清华大学出版社,20075 方敏,张彤.c语言程序设计.西安电子科技大学出版社.2006附录:源代码:using system;using system.collections.generic;using system.componentmodel;using system.data;using system.drawing;using system.text;using system.windows.forms;using system.io;using microsoft.win32;using system.runtime.interopservices;using system.threading;namespace 音频播放_1 public partial class form1 : form public form1() initializecomponent(); / 接下来在代码的通用段定义以下公共数组和变量: /* string endpath = null; int i = 0; int lstfilllist = 1; string filelist = new string10000; / 定义播放列表数的最大值 int numofmusic; / 选中的媒体文件的索引号 int selectone; / 选中的音乐文件 int playone = 2; / 顺序播放 / 添加以下六个方法,分别用于添加单个媒体文件、添加媒体文件目录、删除媒体文件、播放媒体文件、打开和关闭窗体上的按钮。 /* / 添加单个媒体文件的方法 /* public void addfile(string path) if (numofmusic 10000) numofmusic += 1; filelistnumofmusic = path; else messagebox.show(不能添加文件!, 播放列表已满); /* / 添加媒体文件目录的方法 /* public void addfiles(string path, listbox lstfiles) directoryinfo dir = new directoryinfo(path); foreach (fileinfo f in dir.getfiles(*.mp3) addfile(f.fullname); int i; string strfile = convert.tostring(numofmusic); for (i = 1; i = 5 - strfile.length; i+) strfile += ; strfile = f.fullname; int n = strfile.lastindexof() + 1; strfile = strfile.substring(n) + / + strfile.substring(0, n); lstfilelist.items.add(strfile); foreach (fileinfo f in dir.getfiles(*.dat) addfile(f.fullname); int i; string strfile = convert.tostring(numofmusic); for (i = 1; i = 5 - strfile.length; i+) strfile += ; strfile = f.fullname; int n = strfile.lastindexof() + 1; strfile = strfile.substring(n) + / + strfile.substring(0, n); lstfilelist.items.add(strfile); foreach (fileinfo f in dir.getfiles(*.flv) addfile(f.fullname); int i; string strfile = convert.tostring(numofmusic); for (i = 1; i = 5 - strfile.length; i+) strfile += ; strfile = f.fullname; int n = strfile.lastindexof() + 1; strfile = strfile.substring(n) + / + strfile.substring(0, n); lstfilelist.items.add(strfile); foreach (fileinfo f in dir.getfiles(*.lrc) addfile(f.fullname); int i; string strfile = convert.tostring(numofmusic); for (i = 1; i = 5 - strfile.length; i+) strfile += ; strfile = f.fullname; int n = strfile.lastindexof() + 1; strfile = strfile.substring(n) + / + strfile.substring(0, n); lstfilelist.items.add(strfile); foreach (directoryinfo d in dir.getdirectories() addfiles(d.fullname, lstfilelist); /* / 删除单个媒体文件的方法 /* public void delfile(int selectnum) int i; for (i = selectnum; i = numofmusic - 1; i+) filelisti = filelisti + 1; numofmusic -= 1; /* / 播放媒体文件的方法 /* public void play(int selectnum) if (selectnum lstfilelist.items.count) lstfilelist.selectedindex = selectone; this.text = null; string msg = lstfilelist.itemslstfilelist.selectedindex.tostring(); string strs = msg.split(/); mediaplayer.url = strs1 + strs0; this.text = strs0; /* / 使部分按钮可用的方法 /* public void openbtn() btnplay.enabled = true; btnback.enabled = true; btnforward.enabled = true; /* / 使部分按钮不可用的方法 /* public void closebtn() btnplay.enabled = false; btnback.enabled = false; btnforward.enabled = false; btnstop.enabled = false; btndelete.enabled = false; /* /* /接下来编写窗体的载入(load)事件代码如下,用于初始化各数据和窗体上各按钮控件的状态。 /* / 窗体的载入事件代码 /* private void form1_load(object sender, eventargs e) label1.text = 顺序播放; tmrmedia.start(); /this.backgroundimage = image .fromfile (e:图片景物动物狼.jpg); lstfilelist.items.copyto(filelist, 0); / 将列表框(lstfilelist)中的列表项全部复制到数组(filelist)中 numofmusic = 0; / 选中
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 手车买卖分期付款合同
- 爷爷的收音机珍贵的家庭物品写物10篇
- 二手房意向金协议
- 应急分队考试试题及答案
- 疫苗考试试题及答案
- 医药政策考试试题及答案
- 六一其它活动方案
- 六一奶茶店活动方案
- 六一安全活动方案
- 六一抓鱼活动方案
- 仪器仪表制造职业技能竞赛理论题库
- 网络服务器配置与管理(微课版) 教案 项目02 虚拟化技术和VMware-2
- 国家开放大学2025年《创业基础》形考任务3答案
- 《成本会计学(第10版)》课后参考答案 张敏
- LNG加气站质量管理手册
- (正式版)HGT 22820-2024 化工安全仪表系统工程设计规范
- n系列蒸汽型溴化锂吸收式冷水机组f.ju.1
- 会展策划与管理高水平专业群建设项目建设方案
- 司炉岗位应急处置卡(燃气)参考
- 最新四川省教师资格认定体检表
- 串并联电路电压表电流表(课堂PPT)
评论
0/150
提交评论