C课程设计-播放器.doc_第1页
C课程设计-播放器.doc_第2页
C课程设计-播放器.doc_第3页
C课程设计-播放器.doc_第4页
C课程设计-播放器.doc_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机科学与技术学院 C+面向对象课程设计 题 目 多媒体播放器制作 学 院 计算机科学与技术 班 级 软件工程 1001 班 指 导 教 师 xx 老师 姓 名 2011 年 6 月 24 日 摘要摘要 当前多媒体技术飞速发展,日新月异,呈现在人们面前的是更加多姿多彩 的世界。多媒体技术给人们提供了强大的视听感受,主要以声音、视频、图片 等为主。近年来音乐和电影的发展和普及尤为突出,现已成为多媒体的“代言 人” 。 随之而来的是越来越多的应用软件供人们选择来播放特定的音乐和视频, 像音乐播放器中大家最为熟悉的“酷狗” 、 “千千静听”等,视频播放器中大家 多媒体播放器制作摘要 最为熟悉的莫过于“暴风影音”和“快播”了,他们不仅功能强大,可以支持 多种格式的视频和音乐,而且容易操作,易为广大影音爱好者接受和使用。他 们的操作界面非常友好,而且大多可根据用户自己的爱好进行设置,深受消费 者的喜爱。 于是,我们小组选择了制作一个简单的音乐视频播放器,由于目前我们的 能力还十分有限,只能做出简单的小程序,但我们相信,这可以激发我们的兴 趣,为以后的学习和进步打下基础。 我们的音乐视频播放器可以播放 Mp3,Wma,Midi 等格式的音乐文件和 Rmvb,Rm,Avi 等格式的视频文件。 主要有“打开文件” , “播放” , “暂停” , “继续” , “停止” , “全屏”等功能, 在播放的时候可以显示当前播放的曲目,并且可以显示当前的状态。 关关键键词词:多媒体;视听;应用软件。 主要变量及对象主要变量及对象 int NumOfMedia/已添加到列表的文件数 CString file255 /用于保存列表中文件的路径 多媒体播放器制作目录 NOTIFYICONDATA m_NotifyData /结构体,传递托盘区域消息的信息 CMenu m_TrayMenu /定义托盘对象 BOOL m_flag BOOL m_Flag/判断全屏标志变量 BOOL m_selected /判断复选的标志变量 CListCtrl m_list/列表控件控制对象 CWMPPlayer4 m_player /windows media player 的控制对象 多媒体播放器制作目录 目目 录录 第一章 前 言1 1.11.1 简介说明简介说明.1 1.21.2 设计目的设计目的.1 1.31.3 运行规则运行规则.1 1.41.4 项目任务书项目任务书.2 第 2 章 系统功能分析4 2.12.1 系统总体功系统总体功能能分析分析.4 2.22.2 系统部分功能实现具体分析系统部分功能实现具体分析.5 2.2.1 打开多媒体文件功能分析打开多媒体文件功能分析.5 2.2.2 添加文件到播放列表,双双击列表项播放添加文件到播放列表,双双击列表项播放.6 2.32.3 程序核心代码程序核心代码.7 2.3.1 播放功播放功能能核心代码核心代码.7 2.3.2 暂停、停止功能核心代码暂停、停止功能核心代码.7 2.3.3 全屏功能核心代码全屏功能核心代码.8 2.3.4 播放列表相关操作代码播放列表相关操作代码.9 2.3.5 设置对话框伸缩代码设置对话框伸缩代码.10 2.3.5 系统托盘相关代码系统托盘相关代码.11 第 3 章 系统测试13 3.13.1 程序主界程序主界面面.13 3.23.2 打开添加文件打开添加文件.14 3.33.3 播放多媒体文件播放多媒体文件.15 3.43.4 全屏界面显示全屏界面显示.16 3.53.5 隐藏和显示功能隐藏和显示功能.17 3.63.6 添加文件到列表框功能添加文件到列表框功能.17 第 4 章 结语18 参考文献19 多媒体播放器制作第 1 章 前 言 1 第一章第一章 前前 言言 1.11.1 简介说明简介说明 这是一款小巧实用的多媒体播放器,容易操作,界面简洁,画面清晰,基 本功能齐全。针对当前多媒体播放软件商业化趋势的加强,制作这样一个播放 器,用于供个人娱乐使用。信息化时代,多媒体技术飞速发展,呈现在人们面 前的是更加多姿多彩的世界。此外,本播放器采用 windows media player 制作而 成,运用系统相关控件,支持多种格式的多媒体文件播放,给人们提供了强大 的视听感官冲击。 1.21.2 设计目的设计目的 我们将主要通过 C+语言和 MFC 技术,运用面向对象的程序设计方法, 开发此款多媒体播放器。争取做到使程序短小精悍,简洁明了;操作界面优美 友好,容易操作;功能丰富,趣味性强。现在将我们对项目期望实现的目标一 一介绍: 1、可以在任何时候启用该应用程序。 2、可以播放多种格式的音频和视频。 3、可以实现多种播放状态的切换。 4、可以实现快进或快退。 5、可以显示播放时间和曲目总长度。 6、操作界面友好。 7、操作方便,容易上手。 1.31.3 运行规则运行规则 (1)打开文件 在运行本播放器的第一步就是首先要在磁盘中选取为其支持的文件,包括 多媒体播放器制作第 1 章 前 言 2 常见的音乐和视频格式。点击“打开文件”后,会弹出一个对话框,要求用户 在相应的目录下选择文件,如选择的文件类型为其所支持,播放器会自动播放 音乐或视频。 (2)操作规则 添加在选中文件后程序将会把该文件保存到播放列表,双击列表项可 以播放文件; 播放在打开文件的时候播放器会自动播放选取的音频或视频,此时界 面上会显示正在播放以及播放的文件名; 暂停点击播放器上方的“暂停”按钮,即可暂停正在播放的曲目,此 时界面上会显示播放的文件已暂停; 继续在暂停之后,原来的暂停按钮会变成“继续” ,单击会继续播放已 暂停的曲目。此时“继续”按钮将会重新变成“暂停” ; 停止点击此按钮,会中止正在播放的曲目,若要继续,则只能重新开 始已选择的曲目; 全屏点击会全屏播放音频或视频,退出时需要双击界面或按“Esc”键; 隐藏和显示会隐藏除“显示”外的其他按钮,此时“隐藏”按钮会自 动变成“显示” ,若要显示,正好相反操作; 退出此时指退出该播放器,用户在选择此按钮时,会弹出一个对话框 要求用户确认退出或放弃退出继续播放。 注意:本程序未定义快捷键,使用快捷键可能会使程序被注意:本程序未定义快捷键,使用快捷键可能会使程序被 强行关闭,请勿使用快捷键强行关闭,请勿使用快捷键 1.41.4 项目任务书项目任务书 (1)班级:软件工程 1001 班 多媒体播放器制作第 1 章 前 言 3 (2)组员:陈涌澜(组长)、唐一茗、周贤 (3)项目名称:多媒体播放器 (4)项目分工: 陈涌澜:前景展望,编写部分程序。管理整个小组的活动,指导编程,编 写部分程序及程序调试。 唐一茗:资料的收集,资料分析,项目把关、软件的最后测试及编写“托 盘 菜单(打开文件) ”部分程序。 周 贤:资料的收集,资料分析,文档的设计和编写,编写“菜单(播放 暂停) ”部分程序及程 (5)项目进度: 15 周:前期准备,各类资料的收集整理。 16 周:实现基本功能并完善。 17 周:实现程序附加功能并运行。 18 周:最后测试,最后优化。 多媒体播放器制作第 2 章 系统功能分析 4 第第 2 章章 系统功能分析系统功能分析 2.12.1 系统总体功能分析系统总体功能分析 下面是我们的播放器的设计和运行的流程图: 图 2-1-1 总体功能流程图 打开文件 播放 关于 继续关闭退出全屏播放 退出 全屏停止暂停 提示信息 开始 结束 多媒体播放器制作第 2 章 系统功能分析 5 2.22.2 系统部分功能实现具体分析系统部分功能实现具体分析 2.2.1 打开多媒体文件功能分析打开多媒体文件功能分析 实现函数 ;CCZTMediaPlayerDlg:OnOpenfile() 为菜单栏的“文件”弹出菜单下“打开文件”菜单按钮添加对话框类的消 息响应函数 OnOpenfile。在该函数下定义一个字符型数组变量 szFileFilter用于 保存可打开文件的扩展名。然后创建一个通用对话框,用于打开文件。如果用 户选中文件并点击确定按钮,程序将得到该文件的路径,然后调用 windows media player 控件的 SetUrl 方法,此时将播放该文件。 图 2.2.1.1 OnOpenfile 函数的实现 多媒体播放器制作第 2 章 系统功能分析 6 2.2.2 添加文件到播放列表,双双击列表项播放添加文件到播放列表,双双击列表项播放 实现函数; OnAddmedia()及 OnDblclkPlayList 在对话框中添加一个列表控件。为菜单栏的“播放列表”弹出菜单下“添 加”菜单按钮添加对话框类的消息响应函数 OnAddmedia,创建通用对话框, 在用户选择文件并点击确定时,将程序得到该文件的文件名及路径,分别保存 在 fileName 和 fileNumOfMedia+1变量中,NumOfMedia 变量为整型,其作用 是将得到的列表中现有的列表项数保存起来。接着在类向导中创建列表项的左 键双击消息响应函数 OnDblclkPlayList,此时利用 GetSelectionMark 方法得到所 点击的是第几行,然后从 file数组中得到该项的地址,用 SetUrl 方法播放。 图 2.2.2.2 OnDblclkPlayList 函数的实现 多媒体播放器制作第 2 章 系统功能分析 7 2.32.3 程序核心代码程序核心代码 2.3.1 播放功能核心代码播放功能核心代码 void CCZTMediaPlayerDlg:OnOpenfile() /打开文件 / TODO: Add your command handler code here char szFileFilter= All File(*.*)|*.*| RM File(*.rm)|*.rm| AVI File(*.avi)|*.avi| Mp3 File(*.mp3)|*.mp3| MPEG File(*.mpeg)|*.mpeg| Media File(*.asf)|*.asf| Video File(*.dat)|*.dat| MPGA File(*.mpga)|*.mpga| Wave File(*.wav)|*.wav| Movie File(*.mov)|*.mov| Mid File(*.mid;*,rmi)|*.mid;*.rmi| Wma File(*.wma)|*.wma|; CFileDialog dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,sz FileFilter,NULL); if(dlg.DoModal()=IDOK) CString filePathName=dlg.GetPathName(); m_player.SetUrl(filePathName);/播放 2.3.2 暂停、停止功能核心代码暂停、停止功能核心代码 void CCZTMediaPlayerDlg:OnPlay() 多媒体播放器制作第 2 章 系统功能分析 8 / TODO: Add your command handler code here m_player.GetControls().play();/播放文件 void CCZTMediaPlayerDlg:OnPause() / TODO: Add your command handler code here m_player.GetControls().pause();/暂停文件播放 void CCZTMediaPlayerDlg:OnStop() / TODO: Add your command handler code here m_player.GetControls().stop();/停止文件播放 2.3.3 全屏功能核心代码全屏功能核心代码 void CCZTMediaPlayerDlg:OnFullscreem() /全屏 / TODO: Add your command handler code here long Playstate=m_player.GetPlayState(); if(!Playstate) MessageBox(请先加载视频!,NULL,MB_OK); else if(m_flag) /GetWindowRect( m_player.SetFullScreen(TRUE); m_flag = true; SetFocus(); else m_player.SetFullScreen(FALSE); m_flag = false; SetFocus(); 多媒体播放器制作第 2 章 系统功能分析 9 void CCZTMediaPlayerDlg:OnAbout() / TODO: Add your command handler code here CAboutDlg dlg; dlg.DoModal(); 2.3.4 播放列表相关操作代码播放列表相关操作代码 void CCZTMediaPlayerDlg:OnAddmedia() / TODO: Add your command handler code here char szFileFilter= All File(*.*)|*.*| RM File(*.rm)|*.rm| AVI File(*.avi)|*.avi| Mp3 File(*.mp3)|*.mp3| MPEG File(*.mpeg)|*.mpeg| Media File(*.asf)|*.asf| Video File(*.dat)|*.dat| MPGA File(*.mpga)|*.mpga| Wave File(*.wav)|*.wav| Movie File(*.mov)|*.mov| Mid File(*.mid;*,rmi)|*.mid;*.rmi| Wma File(*.wma)|*.wma|; CFileDialog dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,sz FileFilter,NULL); if(dlg.DoModal()=IDOK) CString fileName=dlg.GetFileTitle(); m_list.InsertItem(1,fileName,0); NumOfMedia=m_list.GetItemCount(); fileNumOfMedia-1=dlg.GetPathName(); 多媒体播放器制作第 2 章 系统功能分析 10 void CCZTMediaPlayerDlg:OnDblclkPlayList(NMHDR* pNMHDR, LRESULT* pResult) / TODO: Add your control notification handler code here CString str; int mark = m_list.GetSelectionMark(); m_player.SetUrl(filemark); *pResult = 0; void CCZTMediaPlayerDlg:OnDelall() / TODO: Add your command handler code here m_list.DeleteAllItems(); 2.3.5 设置对话框伸缩代码设置对话框伸缩代码 void CCZTMediaPlayerDlg:OnButton1() /对话伸缩框 / TODO: Add your control notification handler code here CString st; if (GetDlgItemText(IDC_BUTTON1,st),st=); else SetDlgItemText(IDC_BUTTON1,GetWindowRect( rectSmall.left=rectLarge.left; rectSmall.top=rectLarge.top; rectSmall.right=picRect.right; rectSmall.bottom=rectLarge.bottom; 多媒体播放器制作第 2 章 系统功能分析 11 if (st=TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON, curPT.x, curPT.y, AfxGetApp()-m_pMainWnd, TPM_LEFTALIGN);/再点 击的位置弹出菜单 void CCZTMediaPlayerDlg:OnCancel() Shell_NotifyIcon(NIM_DELETE, /退出时注销托盘 CDialog:OnCancel(); BOOL CCZTMediaPlayerDlg:OnInitDialog() 多媒体播放器制作第 3 章 系统测试 12 . / TODO: Add extra initialization here . m_TrayMenu.LoadMenu(IDR_TRAYMENU);/加载一个菜单资源 m_NotifyData.cbSize = sizeof(NOTIFYICONDATA); m_NotifyData.hIcon = AfxGetApp()-LoadIcon(IDI_MEDIAPLAYER);/注册 一个系统托盘图标 m_NotifyData.hWnd = m_hWnd; char *szTrayText = CZTMediaPlayer; strncpy(m_NotifyData.szTip, szTrayText, strlen(szTrayText)+1);/托盘提示 m_NotifyData.uCallbackMessage = WM_TRARMESSAGE; m_NotifyData.uFlags = NIF_ICON|NIF_MESSAGE|NIF_TIP; . 多媒体播放器制作第 3 章 系统测试 13 第第 3 章章 系统测试系统测试 3.13.1 程序主界面程序主界面 当用户运行程序运行时将会运行如下界面: 图 3.1.1 程序运行主界面 多媒体播放器制作第 3 章 系统测试 14 图 3.1.2 程序帮助界面 3.23.2 打开添加文件打开添加文件 当用户选择打开添加多媒体文件时显示如下界面: 图 3.2.1 打开添加多媒体文件图 多媒体播放器制作第 3 章 系统测试 15 图 3.2.2 打开添加多媒体文件图 多媒体播放器制作第 3 章 系统测试 16 3.33.3 播放多媒体文件播放多媒体文件 当用户选择多媒体文件且播放选中文件时显示如下界面: 图 3.3.1 打开音乐文件并播放图示 图 3.3.2 打开视频文件并播放图 多媒体播放器制作第 3 章 系统测试 17 图 3.3.3 多媒体文件播放时使用暂停功能图 3.43.4 全屏界面显示全屏界面显示 当用户选择显示全屏时,显示如下界面: 图 3.4.1 全屏界面图 多媒体播放器制作第 3 章 系统测试 18 3.53.5 隐藏和显示功能隐藏和显示功能 当用户选择将其窗口最小化后将会托盘隐藏在右下角位置,如下界面: 图 3.5.1 隐藏和显示功能 3.63.6 添加文件到列表框功能添加文件到列表框功能 当用户选择添加文件后文件将显示在右边的列表框,如下界面: 图 3.6.1 添加文件到列表框功能图 多媒体播放器制作第 4 章 结语 19 第第 4 章章 结语结语 经过三个星期的时间,我们小组已经完成了 C+面向对象的课程设计。这 次课程设计是与同学共同讨论并利用这学期学到了 C+以及 MFC 知识完成的。 本次课程设计主要

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论