c程序设计课程程序设计报告媒体播放器的设计与实现

上传人:仙*** 文档编号:33887958 上传时间:2021-10-19 格式:DOC 页数:33 大小:614KB
返回 下载 相关 举报
c程序设计课程程序设计报告媒体播放器的设计与实现_第1页
第1页 / 共33页
c程序设计课程程序设计报告媒体播放器的设计与实现_第2页
第2页 / 共33页
c程序设计课程程序设计报告媒体播放器的设计与实现_第3页
第3页 / 共33页
点击查看更多>>
资源描述
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; / 选中第一个媒体文件 mediaPlayer.settings.volume = 22;/初始化音量大小 string msg; StreamReader sr = File.OpenText(Application.StartupPath + list.txt); msg = sr.ReadLine(); while (msg != null) lstFileList.Items.Add(msg); msg = sr.ReadLine(); sr.Close(); /* /为【添加文件】按钮(btnAddFile)的Click事件添加以下代码,添加媒体文件。 /* / 【添加文件】按钮的单击事件代码 /* 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(); /* /* /再为【添加目录】按钮(btnAddFiles)的Click事件添加以下代码,添加媒体文件目录,实现成批地添加媒体文件。 /* / 【添加目录】按钮的单击事件代码 /* private void btnAddFiles_Click(object sender, EventArgs e) fbdlgMedia.ShowNewFolderButton = true; fbdlgMedia.Description = 请选择媒体文件目录:; fbdlgMedia.ShowN
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 办公文档


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!