免费预览已结束,剩余41页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
毕 业 设 计 多媒体播放器的设计与实现 摘摘 要要 在多媒体信息技术不断发展的推动下 多媒体播放器的发展在人们的工作 生活 中有着举足轻重的作用 笔者开发了此多媒体播放器 笔者所开发的多媒体播放器是利 用 ActiveMovie 控件开发的 ActiveMovie 控件是微软公司推出的用于多媒体程序设计 的控件 它提供了非常完善的音频和视频媒体文件的回放功能 能支持多种文件格式 从最常见的 WAV 文件和 AVI 文件到使用 MPEG 压缩格式的 VCD 视频文件 都可以正常的 进行播放 通过使用 ActiveMovie 控件 笔者较为容易地实现多媒体播放器的基本媒体 文件播放 截图 最近播放列表 全屏和个性化设计等不同的功能 从而达到了在短时 间内检验了自己的知识 又加深了对多媒体了解的一举两得的效果 关键词 播放器 多媒体 可视化 ActiveMovie 目目 录录 1 绪论 1 1 1 课题背景及目的 1 1 2 国内外研究状况 1 1 3 课题研究方法 1 1 4 论文构成及研究内容 2 2 多媒体播放器的概要设计 3 2 1 总体设计思想 3 2 2 系统总体结构 3 2 3 算法原理 3 2 3 1 输入模块 3 2 3 2 处理模块 4 2 3 3 输出模块 7 3 算法的详细设计 9 3 1 打开文件算法9 3 2 打开最近播放算法 11 3 3 播放列表算法 12 4 界面设计与算法实现 14 4 1 界面的设计与算法实现 14 4 2 算法实现 14 4 2 1 CActiveMovie3 类 14 4 2 2 CDlgUrlpath 类 15 4 2 3 CPickup 类 17 4 2 4 CRListBox 类 18 4 2 5 CWelldoneDlg 类 19 5 实现与测试 29 5 1 文件打开测试 29 5 2 文件信息查看测试 31 5 3 播放器常用功能测试 32 5 4 播放列表测试 32 5 5 个性化测试 34 5 5 1 标题与菜单测试 34 5 5 2 隐藏到托盘测试 35 5 5 3 播放显示测试 35 5 6 其他测试 37 5 6 1 URL 打开测试 37 5 6 2 另存为 测试 38 5 6 3 截图 测试 38 5 6 4 收藏 测试 39 5 6 5 完善修改 40 6 总结与展望 41 参 考 文 献 42 ABSTRACT 43 致 谢 44 仲恺农业工程学院毕业论文 设计 成绩评定表 45 1 1 绪论 1 1 课题背景及目的 在多媒体信息技术不断发展的推动下 互联网上多媒体播放器的数目也在直线上升 这不仅仅是在量上的提升 更是有质的飞跃 随着多媒体信息的编码解码能力的提升 人们可以欣赏到画面更加清晰的视频文件 音质更加逼真的音乐 这些都让多媒体与人 们的日常生活的走得更近 由此可以看出 多媒体播放器的发展在人们的工作 生活中 有着举足轻重的作用 开发一个多功能 使用便捷的播放器符合市场的发展需求 具有 很大的内在发展潜力 此外 笔者对多媒体播放器的研究和实现 也是对所学知识的一 次提升和编写程序能力的考验 1 2 国内外研究状况 随着 Internet 的商业化 一些商家纷纷行动规划开发适用于本企业的播放器 根据 iResearch 艾瑞咨询最新推出的网民连续用户行为研究系统 iUserTracker 的最新数据显 示 目前 比较流行的多媒体播放器有 Microsoft Windows Media Player RealOne 豪杰超级解霸以及暴风影音等 暴风影音和 Windows Media Playe 是使用最广泛的影视播放软件 而这两大播放器的核心编码己成控件 因此全球网络化 的公司都在利用这两大核心控件开发适合自己使用的播放器 网络上也有不少的研究者 热衷于播放器的研究 利用控件或 MCI 接口开发自己的播放器 并取得了很大的进步 推动了播放器的发展 笔者所开发的媒体播放应用程序也是选择使用 ActiveMovie 控件的 并且应用 ActiveMovie 的解码功能 使应用程序能够界面清析 播放格式增加并且操作简单 1 3 课题研究方法 本课题是采用 Microsoft Visual C 6 0 的 MFC 框架构建的 MFC 框架是微软公司 推出的开发 Win32 应用程序 Windows 95 98 2000 XP NT 面向对象的可视化集成工 具 在多媒体播放器的设计中 分为以下几个步骤进行 首先确定要解决的问题是弄清楚 MCI 函数与命令消息的名称类型和功能 其次是通过分析媒体播放的具体过程 在打开媒体设备的过程中应用程序需要做哪 些事情 以便在应用程序中加入对这些过程支持的代码 在对应用程序的流程有了大致 的轮廓以后 最好画出流程图 再开始考虑程序框架和应用程序外观的设计 最后 也是最关键的就是编写实现播放媒体的代码将播放器的基本功能实现 紧接 2 着就是程序的调试和完善 1 4 论文构成及研究内容 本文主要阐述了如何用 ActiveMovie 控件在 Visual C 6 0 中设计实现个性化播放 器设计 设计首先划定了几个基本的大功能模块 包括文件 播放 收藏 个性化设计 和帮助 然后在各大模块下又细分了各功能的实现 通过对具体功能的实现 掌握其 MFC 架构的整体协调原理 然后动态跟踪算法执行 通过不断地添加 修改代码来调试 完善整个开发过程 在本系统中基本上实现了一般的播放功能如打开 播放 暂停 停 止 音量调节等功能 此外 该系统独特的个性化设计 播放列表的调入调出 对话框 的隐现 文件的收藏等都是其中的重要实现特点 以下为本文各章节的简要概述 第一章 绪论 提出课题研究的背景 目的及意义 并分析了国内外研究的现状 第二章 多媒体播放器的概要设计 阐述了多媒体播放器的总体设计思想 系统总 体执行流程 第三章 常用功能实现算法 播放列表算法 截图算法 打开网络文件算法 个性 化设计算法 对整个系统进行详细设计 对算法原理系统的理论知识有一定的了解 第四章 算法的具体实现 在本章进一步阐述了选择 VC 进行开发的优势 系统主 界面的设计思想 然后对具体设计时应用到的类进行介绍 并对用户使用系统时 可能 出现的错误操作进行分析 第五章 系统运行结果 本章对系统的实现进行了实例演示不同的功能 具体的排 序过程有所不同 在本章主要针对截图 最近播放列表 全屏 播放列表 添加到收藏 夹和个性化设计等五种不同的功能 以实例的方式 介绍它们的运行过程和结果 第六章 总结与展望 对全文的主要内容进行了总结 并对本论文研究的不足以及 今后的研究方向作了补充说明 3 2 多媒体播放器的概要设计 本章主要介绍了系统的总体设计思想 系统总体结构设计 总体结构的各大模块的 算法实现原理 2 1 总体设计思想 在该多媒体播放器的设计过程中 其总体思想是为了便于用户使用 用户在打开媒 体播放器后 通过鼠标或键盘输入选择相应的播放功能 通过该播放器的内部程序调用 其相应的方法实现多媒体的播放 再通过一定的界面或者播放调节后达到一定的欣赏效 果 2 2 系统总体结构 整个系统的内容主要是以下三个方面 1 输入 包括鼠标和键盘的捕获 2 数据正确加载到内存 并调用相应的功能模块 3 输出 该部分主要是为了应用于后续的测试 整个系统的划分如图 1 所示 多媒体播放 器 输入模块处理模块输出模块 图 1 系统总体结构图 2 3 功能模块设计 本系统开发过程中将采用到许多复杂的算法 整个系统的算法可以分为输入模块 处理模块 输出模块三个部分 2 3 1 输入模块 输入模块包括三个部分 鼠标左键单击输入 键盘功能键输入 键盘快捷键输入 输入模块的构成如图 2 所示 4 输入模块 鼠标左键单 击 键盘功能键 输入 键盘快捷键 输入 图 2 系统输入模块图 2 3 2 处理模块 处理模块下包括 文件 播放 收藏 个性化设计 帮助几大功能 处理模块的构 成如图 3 所示 处理模块 文件播放收藏个性化设计帮助 图 3 系统处理模块图 在图 3 中 文件功能下的具体功能有 打开文件 打开 URL 打开最近播放 关闭 文件 另存为 截图 属性 统计信息 退出功能等 文件功能的细分模块如图 4 所示 5 文件 通用打开文 件功能 文件信息操 作 打开文件打开URL 打开最近播 放 关闭文件另存为截图属性统计信息 退出 图 4 文件功能的细分模块图 在图 3 中 播放功能下的具体功能有 播放 暂停 停止 全屏 上一段 下一段 升高音量 降低音量 静音 音频调节 媒体播放后 待机 关机 重启 无操作 1 等 播放功能的细分模块如图 5 所示 播放控制 播放 暂停停止上一段下一段全屏 音量控制 播放控制 音频播放后音量 降低音量静音升高音量关机重启待机无操作 图 5 播放功能的细分模块图 在图 3 中 收藏功能下的具体功能有 播放列表 添加到收藏夹 管理收藏夹 修 改收藏路径等 2 收藏功能的细分模块如图 6 所示 6 播放列表 添加到收藏 夹 管理收藏夹 修改收藏路 径 收藏 图 6 收藏功能的细分模块图 在图 3 中 个性化设置下的具体功能有 标题与菜单 隐藏到托盘 播放显示 50 100 200 3 等 个性化设置功能的细分模块如图 7 所示 标题与菜单隐藏到托盘播放显示 个性化设置 50 100 200 图 7 个性化设置的细分模块图 在图 3 中 帮助功能下的具体功能有 使用说明 关于 帮助等 帮助功能的细分 模块如图 8 所示 帮助 使用说明关于帮助 图 8 帮助功能的细分模块图 7 2 3 3 输出模块 输出模块主要是为测试使用 根据设计需求得出输出模块有 文件模块 播放模块 收藏模块 个性化设计模块 帮助模块 具体的模块输出如下所示 1 文件模块输出 当用户点击 文件 下的 打开文件 时 播放器弹出打开对话框让用户选择 要播放的媒体 当用户点击 文件 下的 打开 URL 时 播放器弹出打开 URL 对话框让用户输 入要播放的媒体的路径或者窗口式让用户选择要播放的媒体 4 当用户点击 文件 下的 另存为 时 播放器弹出另存为对话框让用户选择 媒体文件要存放的位置 当用户点击 文件 下的 截图 时 播放器弹出截图要存放对话框 用户选 择后就完成了截图功能 当用户点击 文件 下的 统计信息 时 播放器弹出统计信息对话框 显示 当前正在播放的媒体信息 5 2 播放模块输出 当用户点击 播放 下的 全屏显示 时 播放器全屏 用户右键选择退出全 屏时退出全屏 当用户点击 播放 下的音量 提高 降低 静音 时 相应的音量发生变化 当用户选择播放后的操作 待机 重启 关机 无操作 时 媒体播放后就执 行相应的操作 3 收藏模块输出 当用户选择 收藏菜单 的 播放列表 则在播放器的右侧实现播放列表的隐 现 当用户选择 收藏菜单 的 添加到收藏夹 后 播放器会将当前正在播放的 媒体收藏到收藏路径所指定的文件夹位置 当用户选择 收藏菜单 的 管理收藏夹 后 系统会打开收藏路径下的收藏 夹给用户进行媒体文件的管理 4 个性化设置模块输出 当用户选择 个性化设置 的 标题与菜单 后 播放器会的外观发生变化 8 当用户选择 个性化设置 的 隐藏到托盘 后 播放器隐藏到状态栏并给出 相应的图标 用户双击该图标 或者右击该图选择相应的功能则可以恢复播放 器的显示 当用户选择 个性化设置 的 显示方式切换 后 媒体的播放模式发生改变 6 5 帮助模块输出 当用户点击 帮助菜单 的 使用说明 功能后 播放器会弹出本播放器的使 用方法 7 当用户点击 帮助菜单 的 关于 功能后 播放器会弹出本播放器开发时所 采用的控件的信息 以帮助用户对本播放器的了解 当用户点击 帮助菜单 的 帮助 功能后 播放器会弹出该系统下的帮助菜 单 以帮助用户深入了解该播放器所在的系统下的实际操作应用 输出模块的设计如图 9 所示 文件模块 弹出打开文 件对话框 弹出打开 URL对话框 截图成功 输出模块 播放模块 全屏的显示 与退出 音量的变化 播放后的操 作 收藏 个性化设置帮助 属性统计信息 播放列表的 隐现 显示收藏进 度 打开收藏夹 标题与菜单 切换 播放器的隐 现 显示方式的 切换 播放器的操 作说明 弹出播放使 用的控件信 息 系统的使用 帮助 图 9 输出模块的设计图 9 3 算法的详细设计 本系统的开发过程中应用到许多的复杂的算法 其中最为典型的算法有打开文件算 法 打开最近播放算法和播放列表算法 3 1 打开文件算法 功能功能 用户点击 打开文件 后 系统马上判断当前操作系统的类型 如果 win98 以前的 操作系统 则显示老的文件对话框 反之则显示新的文件对话框 用户选完相应的媒体 文件后 读取文件到曲目路径列表 然后系统再次判断当前所选取的媒体文件的后缀名 如果后缀名是 mp3 则禁用一部分功能键 反之则显示所有的功能键 最后刷新当前对 话框 输入项目输入项目 用户点击 打开文件 按钮 鼠标选择媒体文件 输出项目输出项目 播放所选择的文件 菜单栏可使用的按钮 打开文件算法的程序流程图如图 10 所示 8 10 点击打开文件 打开完成 显示老的文件对话 框 是win98以前的 系统 YN 显示新的文件对话 框 读取文件到曲目路 径列表 后缀名是 MP3 刷新当前对话框 Y 禁用一部分功能 键 N 显示所有的功能 键 图 10 打开文件算法的程序流程图 接口接口 GetVersion 获取当前操作系统的信息 addtolist 读取文件夹到曲目路径列表 Testdot String strTest 检查媒体文件的后缀名 存储分配存储分配 Iselected 读入的媒体文件总数 m readFileList 读到的媒体文件数组 m FileList 文件列表数组 测试要点测试要点 对话框的正常显示 11 读到的媒体文件总数 相应的文件列表显示 相应的菜单功能按钮显示 3 2 打开最近播放算法 功能功能 用户点击最近 播放列表 后 系统马上判断用户是否勾选了 自动清除列表 项 是则不显示 最近播放列表 反之则 显示播放列表 如果用户没有选择 自动清除 列表 项 则系统也再次分析打开的总数是否大于 5 条 如是大于 5 条则选择最近 5 条 列出 反之则一一列出 输入项目输入项目 用户点击 最近播放列表 按钮 输出项目输出项目 用户是否选择自动清除功能 用户最近打开的媒体文件 打开最近播放算法的程序 流程图如图 11 所示 9 点点击击最最近近播播放放算算法法 打开完成 不用显示最近播放 列表 是否勾选自动 清除列表 YN 显示最近播放列表 打开的总数是 否大于5条 更新 recent dat文 件 Y 选择最近五条列出 N 一一列出 图 11 打开最近播放算法的程序流程图 12 接口接口 AddToFileRecentSave 保存最近打开的媒体文件信息 存储分配存储分配 建立最近打开文件 recent dat 保存用户所打开的媒体文件信息如 媒体文件的存放 路径 测试要点测试要点 最近打开的媒体文件显示正常 并且最近打开的居上 用户选择 自动清除最近播放列表 后能够达到效果 并给以相应的提示 recent dat 写入与读出正常 3 3 播放列表算法 功能功能 用户点击 播放列表 后 系统马上判断播放列表是否已经现出来 如果己经现出 来则立即隐藏相应的播放列表 修改分割条标志 反之则显示播放列表 修改分割条标 志 刷新窗口 10 输入项目输入项目 用户点击 播放列表 用户点击分割条 输出项目输出项目 播放列表的显示与隐藏 播放列表算法的程序流程图如图 12 所示 点点击击播播放放列列表表 显示完成 把放列表收起来 播放列表是否 存在 YN 计算机分割窗口的 大小 设置相应的标志 刷新窗口 图 12 播放列表算法的程序流程图 13 接口接口 addtolist 保存打开的媒体信息 onUpdateShowPlaylist CCmdUI pCmdUI 设置相关的标志 存储分配存储分配 建立播放列表文件 MPlayer mdr 保存用户的媒体文件信息如 媒体文件的存放路径 测试要点测试要点 播放列显示正常 播放器放大与缩小时播放列表上的按钮不失真 播放列表文件信息读取正常 14 4 界面设计与算法实现 这部分主要是具体说明算法与界面的关系 包括界面的设计及各大模块的算法具体 实现 通过程序流程图的方法把算法明确到位 让算法与界面设计得到定位 形成定局 4 1 界面的设计与算法实现 本播放器的外观跟传统的播放器外观非常类似 最顶部为菜单栏 左部为播放主界 面 右部为播放列表 底部是常用的功能键 主界面如图 13 所示 图 13 播放器的外观设计图 4 2 算法实现 本播放器开发主要用到 CActiveMoive3 类 CDlgUrlpath 类 CPickup 类 CRListBox 类 CWelldoneDlg 类 其中 CActiveMovie3 类是 ActiveMoive 控件的功能类 CDlgUrlpath 类是为了使用 URL 打开播放媒体而设计 CRListBox 类是应用于播放列表 的右键设计 CWelldoneDlg 类是基本的功能实现类 4 2 1 CActiveMovie3 类 15 CActiveMovie3 类为 ActiveMovie 控件的主要类 其进行了多媒体的最低层硬件播 放封装 包含了一般的播放器所具有的基本功能 其接口设计有很多 本次开发用接到 的接口 11 如下 void Run 用以运行多媒体 void Pause 多媒体暂停 void Stop 多媒体停止 CString GetAuthor 获取多媒体的作都信息 CString GetTitle 获取多媒体的标题 CString GetCopyright 获取多媒体的版权 CString GetDescription 获取多媒体的详细信息 包括播放长度 帧数 实 际速率等 CString GetFileName 获媒体文件的名字 void SetFileName LPCTSTR lpszNewValue 把当前的媒体文件传给控件 double GetSelectionStart 多媒体文件同时打开时 可以用它来获取第一个 媒体文件 long GetCurrentState 获取播放器的当前播放状态 long GetVolume 获取播放器的当前播放所使用的音量 void SetVolume long nNewValue 设置播放器的音量 long GetBalance 获取音量的均衡设置 void SetBalance long nNewValue 设置音量的均衡设置 long GetMovieWindowSize 获取当前播放的界面播放大小 void SetMovieWindowSize long nNewValue 设置前播放的界面播放大小 void SetAutoStart BOOL bNewValue 让多媒体自动动播放 4 2 2 CDlgUrlpath 类 应用程序使用路径方式访问媒体资源的位置 CDlgUrlpath 类所对应的实例图如图 14 所示 16 图 14 CDlgUrlpath 类对应的实例图 1 类中包含多个属性设计 每个属性有其各自的类型 含义及限制等 具体如表 1 所示 表 1 CDlgUrlpath 类的属性说明 属性类型含义限制 1m iCountint 用于记录打开的条目数 public 2urlPathInterfaceCSting 路径的接口字符口串 用于与外界沟通 public 3m strUrlArray 5 CString 己经打开的 URL 记录数组 public 4urlPathNameCString 记录当前的 URL 输入串 public 5savenewsreelBOOL 自动保存 URL 历史记录的标志 public 2 接口设计 CDlgUrlpath CDlgUrlpat 是构造函数 原形为 CDlgUrlpath CWnd pParent NULL 用于数据 初始化工作 其中有参数 pParent 父窗口指针 没有输出和返回值 BPareInitial BPareInitial 是参数预先加载函数 原形为 BOOL BPareInitial CStringArray strparemeter 5 int index BOOL m URLsaveflag 用于在构造函数前进行相应的数 据初始化 DoDataExchange 原形为 virtual void DoDataExchange CDataExchange pDX 数据交换 主要用 于对话框上控件数据交换 MFC 框架控制 有参数 pDX 无输出及返回值 17 OnInitDialog 原形为 virtual BOOL OnInitDialog 用于窗口数据初始化 OnAutosavenewsreel 原形为 void OnAutosavenewsreel 用标志用户是否选择自动保存 URL 历史纪录 OnOK 原形为 void OnOK 用于检验用户的输入是合法和确定用户输入 OnCancel 原形为 void OnCancel 用户取消本次操作返回播放界面 OnDlgbrowse 原形为 void OnDlgbrowse 用户如果不知道资源的路径可以通过单单击浏览按 钮来浏览本地的资源存放位置 当单击浏览按钮时就调用 OnDlgbrowse 函数 4 2 3 CPickup 类 用户欣赏到自己喜欢的媒体文件时可以使用播放器的 添加到收藏夹 实现对该媒 体文件的保存 当用户单击 修改收藏路径 则弹出修改收藏路径对话框 该对话框所 对应的类为 CPickup CPickup 类所对应实例的图如图 15 所示 图 15 CPickup 类对应的实例图 1 类中包含多个属性设计 每个属性有其各自的类型 含义及限制等 具体如表 2 所示 表 2 CPickup 类的属性说明 属性类型含义限制 1m editpathCEdit 用于记录用户输入的路径 public 2strPathTempCSting 临界路径用予与外界交互 public 18 3szDir MAX PATH char 记录用户用图形界面所选择的路径 public 2 接口设计 CPickup CPickup 是构造函数 原形为 CPickup CWnd pParent NULL 用于数据初始化 工作 其中有参数 pParent 父窗口指针 没有输出和返回值 InitialPickup InitialPickup 是参数预先加载函数 原形为 BOOL InitialPickup CString strtemp 用于在构造函数前进行相应的数据初始化 DoDataExchange 原形为 virtual void DoDataExchange CDataExchange pDX 数据交换 主要用 于对话框上控件数据交换 MFC 框架控制 有参数 pDX 无输出及返回值 OnInitDialog 原形为 virtual BOOL OnInitDialog 用于窗口数据初始化 OnOK 原形为 void OnOK 用于检验用户的输入是合法 和确定用户输入 OnDlgbrowse 原形为 void OnDlgbrowse 用户如果不知道资源的路径可以通过单击浏览按钮 来浏览本地的资源存放位置 当单击浏览按钮时就调用 OnDlgbrowse 函数 4 2 4 CRListBox 类 CRListBox 继承于 CListBox 主要用于在播放列表上进行操作 实现在播放列表上右 键弹出 添加到收藏夹 管理收藏夹 修改收藏路径 实现相应的功能 1 类中包含多个属性设计 每个属性有其各自的类型 含义及限制等 具体如表 3 所示 表 3 CRListBox 类的属性说明 属性类型含义限制 1m bitmapCBitmap 用于标志用户做出的曲目播放顺序 public 2menuCMenu 加载用户右键后的菜单 public 2 接口设计 19 CRListBox 是构造函数 原形为 CRListBox 用于数据初始化工作 主要完成 CListBox 的初始 化 CRListBox CRListBox 对资源的释放与回收 OnFavoriteAddtofavorite 原形为 void OnFavoriteAddtofavorite 发送消息给播放器主界面 并调用相应 的函数完成添加到收藏夹的功能 OnFavoriteManagefavorite 原形为 void OnFavoriteManagefavorite 发送消息给播放器主界面 并调用相 应的函数完成管理收藏夹的功能 OnFavoritePathchange 原形为 void OnFavoritePathchange 发送消息给播放器主界面 并调用相应的 函数完成修改收藏路径的功能 OnLButtonDown 原形为 void OnLButtonDown UINT nFlags CPoint point 调用 windows 左键消 息完成 OnLButtonDown 的一般功能 OnRButtonUp 12 原形为 void OnRButtonUp UINT nFlags CPoint point 用户点击右键弹起后 马上对鼠标所在的位置进行捕获 如果是媒体文件的列项上则就对该路径显深色并弹出 可操作的方法 4 2 5 CWelldoneDlg 类 CWelldoneDlg 继承于 CDialog 主要用于加载播放器控件 播放列表 整体布局与设 计等设计操作 同时也是实现主体功能的主要类 CWelldoneDlg 类所对应实例的图如图 16 所示 20 图 16 CWelldoneDlg 类对应的实例图 1 类中包含多个属性设计 每个属性有其各自的类型 含义及限制等 具体如表 4 所示 表 4 CWelldoneDlg 类的属性说明 属性类型含义限制 1catchpictureBOOL 标志是否进行了截图 public 2FavoritePathCSting 收藏夹路径 public 3fullscreenflagBOOL 全屏标志 public 4g hKeyboardHHOOK 获取键盘输入 public 5iselectedInt 保存媒体文件数 public 6m ActiveMovieCActiveMovie3 播放控件的变量 public 7m addCButton 添加按钮变量 public 8m bitmapCBitmap 位图变量 public 9m clearCButton 清空按钮变量 public 10m ClerarautoflagBOOL 自动清空标志 public 21 11m deleteCButton 清除按钮变量 public 12m FileList 256 CString 媒体文件路径列表数组 public 13m groupCButton 分组控件变量 public 14m hAccelHACCEL 加速描述表变量 public 15m hIconHICON 图标变量 public 16m MusicFilePathCString 保存媒体列表文件的路径 public 17m nIndexInt 数量索引变量 public 18m playlistCRListBox 播放列表变量 public 19 m readFileList 256 CString 读取列表文件的数组 public 20 m RecentMusicFileP ath CString 保存媒体最近打开列表文件的路径 public 21m shutdownflagint 关机标记 public 22m splitCButton 分割按钮 public 23m splitflagBOOL 分割标志 public 24m strArray 5 CStringArray 字符串数组 public 25m URLClearflagBOOL URL 自动清除标志 public 26m volumelong 音量大小变量 public 27strdottestCString 后缀名测试字符串 public 28titleandmenuflagBOOL 标题与菜单标志 public 29tnd NOTIFYICONDAT A 通知消息 public 30totalInt 移位总数 记录用户的个性化操作 public 31volumeflagBOOL 音量标志 public 2 接口设计 15 AddToFileRecent 是构造函数 原形为 BOOL AddToFileRecent CString CPathname 用于添加到最近 打开的媒体文件 AddToFileRecentSave AddToFileRecentSave 是参数预先加载函数 原形为 BOOL AddToFileRecentSave 用于保存相应的路径信息到文件 22 addtolist 原形为 BOOL addtolist 把所打开的媒体文件的名字添加到播放列表 CWelldoneDlg 是构造函数 原形为 CWelldoneDlg CWnd pParent NULL 用于数据初始化 工作 其中有参数 pParent 父窗口指针 没有输出和返回值 DlgtoActive 原形为 void DlgtoActive 当对话框或者控件发生变化时 把对话框的大小与控 件相对应作出调整 DoDataExchange 原形为 virtual void DoDataExchange CDataExchange pDX 数据交换 主要用 于对话框上控件数据交换 MFC 框架控制 有参数 pDX 无输出及返回值 InitPath InitPath 是参数预先加载函数 原形为 BOOL InitPath 用于初始化相应的路径 信息 KeyboardProc 原形为 LRESULT WINAPI KeyboardProc int code WPARAM wParam LPARAM lParam 键盘处理过程 键盘的所有输入首先经过此函数处理后再转由其他函数处理 LoadPicture 原形为 BOOL LoadPicture 用于加载图片信息 MoveMovieWindow 13 原形为 void MoveMovieWindow 当对话框或者控件发生变化时 把控件的大小作 出调整与对话框大小相对应 OnAdd 原形为 void OnAdd 实际上与 OnFileOpen 等价 都是打开文件操作 OnCancel 原形为 void OnCancel 对话框的取消操作 OnCharacterAhundred 原形为 void OnCharacterAhundred 个性化设置 设置为原媒体文件的 100 比例 OnCharacterFifty 23 原形为 void OnCharacterFifty 个性化设置 设置为原媒体文件的 50 比例 OnCharacterTwohundred 原形为 void OnCharacterTwohundred 个性化设置 设置为原媒体文件的 200 比例 OnCharacterHide 原形为 void OnCharacterHide 个性化设置的隐藏对话框方法 OnCharacterShow 原形为 void OnCharacterShow WPARAM wParam LPARAM lParam 个性化设置的显 现对话框方法 OnClear 原形为 void OnClear 清空播放列表的方法 OnClose 原形为 BOOL OnClose 关闭播放器的方法 在 OnClose 中设置保存相应的个性 设置和路径 播放列表 备份 OnDblClickActivemoviecontrol1 原形为 void OnDblClickActivemoviecontrol1 控件的方法 用于鼠标左键双击 时做出相应变换 OnDblclkPlaylist 原形为 void OnDblclkPlaylist 播放列表应该有双击播放功能 所以用此方法 实现相关的双击功能 OnDelete 原形为 void OnDelete 删除播放列表里的项目时调用此方法 OnDropFiles 原形为 void OnDropFiles HDROP hDropInfo LPARAM b 用于实现媒体文件的拖放 播放 该函数的第一个参数包含拖放文件的信息 第二个参数用于接收鼠标传进来的参 数 OnFavoriteAddtofavorite 原形为 void OnFavoriteAddtofavorite 使用者想把自己喜欢的媒体文件收藏 到收藏夹则调用此函数实现 OnFavoriteManagefavorite 24 原形为 void OnFavoriteManagefavorite 用于管理收藏文件夹的方法 OnFavoritePathchange 原形为 void OnFavoritePathchange 用户根据自己需要改变收藏夹则调用此方 法实现 OnFileCatpture 原形为 void CWelldoneDlg OnFileCatpture 调用此方法实现媒体文件的截图 功能 OnFileClearauto 原形为 void OnFileClearauto 用户个性化设置 每次退出自动清除最近打开 列表 OnFileClose 原形为 void OFileClose 调用此方法把正在播放的媒体文件关闭 OnFileDeleteonly 原形为 void OnFileDeleteonly 调用此方法把本次播放器的最近打开记录删除 但不是个性化设置 主要与 OnFileClearauto 相对应 OnFileExit 原形为 void OnFileExit 退出播放器 OnFileOpen 原形为 void OnFileOpen 调用此方法弹出一个打开对话框 让用户在图形界面 下选择要打开的媒体文件 OnFileProperty 原形为 void OnFileProperty 正在播放的媒体文件的主要信息单或者播放器打 开的媒体文件信息单 OnFileSaveas 原形为 void OnFileSaveas 弹出另存为对话框 把己经打开的媒体文件或者正 在播放的媒体文件另外为另外一种格式 或者单纯者存到另一路径保存 OnFileStatics 原形为 void OnFileStatics 己经打开的或者是正在播放的媒体文件的统计信息 OnFileUrl 25 原形为 void OnFileUrl 弹出 URL 对话框让用户输入或者图形界面让用户选择要 播放的媒体文件 OnHelp 原形为 void OnHelp 用于帮助用户更好了解播放器的使用 OnInitDialog 原形为 virtual BOOL OnInitDialog 用于窗口数据初始化 OnKeyDown 原形为 void OnKeyDown UINT nChar UINT nRepCnt UINT nFlags 捕获键盘键 的按下键消息 OnKeyDownActivemoviecontrol1 原形为 void OnKeyDownActivemoviecontrol1 UINT nChar UINT nRepCnt UINT nFlags short FAR KeyCode short Shift 播放器控件捕获键盘键的按下键消息 OnNavigationNext 原形为 void OnNavigationNext 下一首播放 OnNavigationPrevious 原形为 void OnNavigationPrevious 上一首播放 OnOpenCompleteActivemoviecontrol1 原形为 void OnOpenCompleteActivemoviecontrol1 媒体文件加截完成后调用此 方法进行相应需要的调整 OnPaint 原形为 void OnPaint 擦写播放器背景 OnPlayAudiofrequency 原形为 void OnPlayAudiofrequency 查看正在播放的媒体文件的音频项 OnPlayLogoff 原形为 void OnPlayLogoff 媒体文件播放完后待机 OnPlayPause 原形为 void OnPlayPause 媒体文件播放暂停 OnPlayRestart 原形为 void OnPlayRestart 媒体文件播放完后重启计算机 26 OnPlayShutdown 原形为 void OnPlayShutdown 媒体文件播放完后关闭计算机 OnPlayWorkless 原形为 void OnPlayWorkless 媒体文件播放完成后计算机无操作 OnRecentOne OnRecentTwo OnRecentThree OnRecentFour OnRecentFive 用于播放最近打开的媒体文件 OnShow 原形为 void OnShow 显示播放器的方法 OnShowFullscreen 原形为 void OnShowFullscreen 播放器播放时全屏显示 OnShowTitleandmenu 原形为 void OnShowTitleandmenu 个性化设置 根据用户的需要对播放器的外 观进行设置 OnSize 原形为 void OnSize UINT nType int cx int cy 当播放器的大小发生变化时 会调用该方法来调节播放器的大小 OnSplit 原形为 void OnSplit 个性化设置 窗口的分割设置 播放列表的隐现 OnStop 原形为 void CWelldoneDlg OnStop 停止媒体播放 OnTimer 原形为 void OnTimer UINT nIDEvent 设置定时器以作适当的调整 OnUpdateShowPlaylist 原形为 void OnUpdateShowPlaylist CCmdUI pCmdUI 更新播放列表后所产生的 操作 OnVKeyToItem 原形为 int OnVKeyToItem UINT nKey CListBox pListBox UINT nIndex 截取虚拟 键以用作个性化设置 OnVolumeLower 原形为 void OnVolumeLower 调低音量 27 OnVolumeSilent 原形为 void OnVolumeSilent 静音 OnVolumeUpper 原形为 void OnVolumeUpper 调高音量 pathconverse 原形为 CString pathconverse CString strconverse 路径转换 主要是把双斜 杠 变为单斜杠 OPreTranslateMessage 原形为 BOOL PreTranslateMessage MSG pMsg 截获消息进行预处理 ReadBackUP 原形为 BOOL ReadBackUP 读取备份文件 readlist 原形为 BOOL readlist 读取播放列表信息 readRecentList 原形为 BOOL readRecentList 读取最近播放信息 RecentPlay 原形为 void RecentPlay CString strRecent 最近播放 SaveBmp 原形为 void SaveBmp HBITMAP hbmp LPCTSTR sIconFileName 保存截图 SaveList 原形为 BOOL SaveList 保存列表信息 SendToBackUp 原形为 BOOL SendToBackUp 发送到文件以作备份 SetMenuDisable SetMenuEnable 原形为 BOOL SetMenuDisable BOOL SetMenuEnable 相关的媒体具有特定的 功能 本方法用于设定相关的可使用菜单 Testdot 原形为 BOOL Testdot CString strTest 检验后缀名 28 5 实现与测试 任何的软件开发都是存在错误的 通过对系统的实现与测试找出算法存在的缺陷 从而更好地实现系统的运行 5 1 文件打开测试 1 点击主菜单上的 文件 菜单选择 打开文件 找到所要播放的歌曲 示例音 乐 一剪梅 wma 进行试听 预期结果 预期结果 播放歌曲 示例音乐 一剪梅 wma 并且可以实现对歌曲播放 暂停 停止 添加到播放列表等基本操作 2 点击播放列表上的 添加 按钮 找到所要播放的歌曲 示例音乐 一剪梅 wma 进行试听 预期结果 预期结果 播放歌曲 示例音乐 一剪梅 wma 并且可以实现对歌曲播放 暂停 停止 添加到播放列表等基本操作 3 使用快捷键 Ctrl O 打开所要播放的歌曲 示例音乐 一剪梅 wma 进行试听 预期结果 预期结果 播放歌曲 示例音乐 一剪梅 wma 并且可以实现对歌曲播放 暂停 停止 添加到播放列表等基本操作 4 使用鼠标左键点中所要播放的媒体 示例音乐 一剪梅 wma 拖动到播放器上 松开左键进行试听 预期结果 预期结果 播放歌曲 示例音乐 一剪梅 wma 并且可以实现对歌曲播放 暂停 停止 添加到播放列表等基本操作 测试结果 测试结果 达到预期效果 能够顺利对歌曲 示例音乐 一剪梅 wma 进行相关的 播放控制 达到的预期效果如图 17 18 所示 29 图 17 打开文件对话框测试 图 18 打开文件后播放测试 30 5 2 文件信息查看测试 1 点击主菜单上的 文件 菜单选择 属性 或 统计信息 对正在播放的媒体 示例音乐 一剪梅 wma 进行相关的信息查看 预期结果 预期结果 可以看到正在播放的媒体的详细信息和统计信息等 2 使用快捷键 shift F10 打开所要播放的媒体 示例音乐 一剪梅 wma 进行 试听 预期结果 预期结果 播放歌曲 示例音乐 一剪梅 wma 可以看到正在播放的媒体的详细信 息和统计信息等 测试结果 测试结果 达到预期效果如图 19 20 所示 图 19 属性对话框测试 31 图 20 统计信息对话框测试 5 3 播放器常用功能测试 主要是对播放器的 播放 菜单一列的测试 预期结果 预期结果 当用户点击 全屏 时 播放器全屏 用户右键选择退出全屏时退出全屏 当用户点击 音量 提高 降低 静音 时 相应的声音发生变化 当用户选择播放后的操作时 媒体播放后就执行相应的操作 测试结果 测试结果 测试后皆能达到预期效果 5 4 播放列表测试 1 点击主菜单上的 收藏 菜单选择 播放列表 点击播放列表上的分割按钮 预期结果 预期结果 如果播放列表是己经存在的 则菜单栏的 播放列表 会有打勾显示 并且播放列表的分割条会出现向右的箭头 如果播放列表收起来则菜单上没有打勾 并且播放列表的分割条会出现向左的箭头 如果播放列表收起来则菜单上没有打勾 并且播放列表的分割条会出现向左的箭头 测试结果 测试结果 达到预期效果 能够顺利对播放列表进行相关的播放控制 5 5 个性化测试 5
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 施工进度计划横道图例题
- 林业面试考试试题及答案
- 昌江应急预案联系电话(3篇)
- 苗圃档案文员培训
- 民用机场运行与管理
- 2025年劳动仲裁时效规定试题及答案
- 2025年法官面试题目解析及答案
- 2025-2025年企业人力资源管理师之四级人力资源管理师通关练习试题
- 单位管理制度范文大全员工管理十
- 浅析农村基层党风廉政建设存在问题及对策
- GB/T 44193-2024全国一体化政务服务平台一网通办基本要求
- 手术室竞选护士长
- MOOC 颈肩腰腿痛中医防治-暨南大学 中国大学慕课答案
- 学校食堂冰箱清洗、除霜记录
- 叠加定理课件
- 公共政策导论全套教学课件
- 2024年青海电工考试题库电工高级工考试题库(全国通用)
- 保险行业职业生涯规划总结
- 寺禅文化传承发展生态园项目实施方案
- 胆道梗阻的护理与处理
- 中国现当代文学史-13贾平凹的文学地理
评论
0/150
提交评论