基于vc的多媒体播放器设计与实现毕业设计论文(编辑修改稿)内容摘要:
提供的 API供发开人员使用,而系统内部的实现,你可以不需知晓,可以说 MFC 是微软 API 在 C++中的封装。 其关键技术在消息映射和消息传递的消息处理机制,在 SDK 中没有消息映射的概念,消息响应传递回调函数,然后判断消息类型,再接着处理。 其中 MFC 中重要的几个类: 作为大多数“窗口”的父类,如 CButton(按钮 )、 CFrameWnd(框架窗 5 口)、 CDialog(对话框 )等。 对话框类。 全名设备文本,与 GDI(图形设备接口)一起负责文字图像显示 的工作,通过对屏幕的像素点进行绘图。 ,文档类主要负责读取和写盘,处理内存和磁盘的交互的。 应用程序类, MFC程序的主函数,程序编译执行的入口和出口,其中 InitInstance()函数负责初始化窗体。 [5] ActiveX ActiveX 控件或称 OCX 控件,作为组件嵌入软件或者网页中,特点有快速开发,支持多语言的编程,在 COM 组件作为基础建立的 ActiveX,为开发人员提供了一个开放集成的平台,在 WEB 网页和应用程序中应用广泛 . . 6 2 需求分析 播放器软件基本调查 多媒体播放器的基本情况就是能对多种媒体格式的视频音频进行数字信号存储的播放。 在网络上已经有了许多流行且优秀的播放器,我们可以先去其概况和功能进行了解然后制定软件需求。 由腾讯公司开发制作的一款支持本地媒体文件本地播放器,能支持多种格式的视音频,第一个创立轻量级多播放的内核技术,作为一款“纯净”的多媒体播放器,没有任何植入广告,也没有强制安装其他软件,且支持的格式多,深受好评。 界面:新版的 影音的界面比旧版更为多彩,但还是一如既往的简洁,同时还提 供换肤的功能,不是仅仅是把界面的背景做更改,而是把整体的布局和窗口的样式以及颜色风格都做了改动。 功能界面有进度条、播放控制按钮、隐藏和显示播放列表。 播放控制功能:播放、暂停、停止、上一曲、下一曲、调整进度。 播放列表功能:添加文件夹、添加文件、删除选中项、选中播放,打开自动保存列表列表排序。 播放循环功能:单一播放 ,顺序播放 ,无序播放 ,单一循环播放 ,以及列表循环播放。 对一个本地播放器来说,暴风影音功能算是较为强大的了。 但是根据时代的发展,现在主流的播放器都是据有网络播放和本地播放两种功能。 有服务器支持的 播放器可以直接在播放器中搜索视频,代表暴风影音。 作为本地播放器拥有播放器的功能,良好的人机交互界面,已经流畅的解码同时也作为网络播放器,能在线检索资源,在线播放和缓存媒体资源的软件。 功能强大,深受广大用户的喜爱。 还具有转换格式可以对当前格式进行转换,同时可以对播放文件进行片段的截取,可以把某块片段截取下来保存,还有对视频截图,对当前画面的保存成位图。 7 软件功能分析 多媒体播放器通过初步的对用户群体调查我了解到作为用户他的需求重点主要在如下几个方面: ,兼容性强。 ,同时不存在二级或二级以上的 BUG。 还经过了对 影音、暴风影音等几款多媒体播放器分了解,分析制定了多媒体播放器的基础需求分析如下: ,播放控制包括播放、暂停、停止以及上一曲和下一曲等基本的播放器控制功能,提供用户进行操作,当播放音乐时播放界面就显示波形动画,还有添加全屏播放的功能,让用户得到更好的体验。 ,进度控制包括播放进度条、快进和快退,方便用户了解观看 进度已经对播放进度的控制和改变。 每次快进或快退,播放进度前进或者退后百分之一,若是播放进度的百分之一小于五秒则每次快进或者退后 5 秒。 ,上调或下调滑条来控制音量的增加或者减少,音量的变化不影响操作系统的音量,可以通过勾选音量按钮来开关音量。 ,设计一个按钮能让播放列表显示和隐藏,在列表中显示媒体文件的信息,如文件名、文件格式、播放时长、所在硬盘的位置,能在列表里添加文件、移除选中的文件、双击播放选中的文件、清空列表、保存列表、还有调整文件所在列表的位置,导入列表 和导出列表。 ( MP WMA 等)、视频格式( AVI、 WMV 等)的打开。 ,将所以控制功能都对应实现在菜单栏中,设置快捷键的绑定,以方便用户使用对应的功能和操作,有利于建立良好的人机交互的界面。 ,让用户一目了然。 ,循环模式包括单一播放 ,顺序播放 ,无序播放 ,单一循环播放 ,以及列表循环播放。 ,让程序可以化为最小化图标在后台运行,在播放音乐时,可以给用户更好的享受。 ,该功能主要面向音频方面的需求设计 的作为音频播放器时,或许睡觉看书时可以听歌,为用户设计计关机和关闭程序的功能。 8 ,此功能面向视频方面的需求,对于用户在观看影片时遇到的精彩画面可以及时的截取下来保存。 ,用户可以自定义部分界面,让其自己可以根据自己的喜好制定界面风格。 具体功能用例图见图 所示。 图 多媒体播放器用例图 9 软件运行环境 操作系统: Windows 2020/Windows XP/Windows Vista/Windows 7 业务流程分析 首先开始程序,先是 打开一个文件,有两种打开方式,一、从列表里添加文件或者导入列表打开,二、直接打开文件,如果文件是符合兼容的类型,然后开始播放,否则视为打开失败,播放过程中有一些的供用户使用的操作,列表打开可以使用列表的循环模式,用户可以对列表进行一系列的操作。 最后是退出,用户使用完毕结束程序。 详解见图 所示 . 图 业务流程图 10 数据流程分析 根据播放控制模块的数据流程分析,首先获取媒体文件的信息,通过 WMP 的解码器进行媒体文件的数据解码,解码成数据信息流,其中包括了声音信息流和图片信息流,声音数据流通 过系统进行声音合成,声卡接受到数据流处理并输出。 图像数据流通过图像编码,再进行显示控制的选项,显卡获取数据流,处理并输出。 关于系统的数据流图见图 和图 所示 . 图 多媒体播放器系统顶层图 图 多媒体播放器系统 0 层图 播放列表模块中通过打开文件添加到播放列表中或者是通过列表添加功能添加文件,列表中以表格的形式分别文件名,文件的格式,文件播放的时长,文件路径。 一目了然的显示媒体相关信息。 基于时间戳的播放过程中(详解见图 )仅仅对早到的或晚到的数据块进行等待 11 或快速处理,往 往是不够的 如果想要更加主动并且有效地调节播放性能,就需要引入反馈机制,也就是通过对比音视频的时间戳将当前数据流的播放状态反馈给上层的“源” 如果音频流滞后,就即时通知音频解码器加快音频流输出,但是如果滞后太多,则直接将当前数据丢弃,直接跳到下一帧;如果视频流滞后,就通知音频解码器减慢音频输出速度等待视频流,如滞后太多也直接进行跳帧 数据流首先通过分离器分解为视频数据流和音频数据流,然后经过对应的解码器,同时由本地系统时钟来进行时间戳控制;获得准确显示或回放时间以后进行时间戳比较;若同步则直接输出,不同步则 进行音频跳帧或等待,直到同步后输出。 分离器视频解码器音频解码器时间截控制时间截比较视频音频同步信息反馈视频输出视频解输出 图 视频音频同步数据流程 12 可行性分析 开发工具 : Visual Studio 2020 和 VC++ 开发语言: C++ 采用的是 Visual C++是 Windows 操作系统上常见的 C++开发工具,是 Microsoft 公司推出的目前使用极为广泛的基于 Windows 平台的 C++的可视化的开发环境。 Visual C++ 编译器负责将 C++源 代码编译成汇编文件,转变为中间文件,然后使用连接器将相关的中间文件连接起来,生成可执行的二进制文件。 Visual C++ 不仅是一个 C++编译器,而且是一个基于 Windows 操作系统的可视化集成开发环境( integrated development environment,IDE)。 Visual C++ 许多组件组成,包括编辑器、调试器以及程序向导 AppWizard、类向导 Class Wizard 等开发工具。 这些组件通过一个名为 Developer Studio 的组件集成为和谐的开发 环境。 使用 VC++ 编译工具的 MFC完成对多媒体播放器的制作,在过去,计算机程序的目标是短小使得运行速度快的代码,当今计算机的性能更好,价格更大众 ,程序开发主要的经费从以前以硬件为主转到了以程序维护、开发为主,所以当今程序设计的第一要务、目标是以可移植性 ,以维护性还有可读性,做出一个播放器的途径具有多种方式,但是因为主观的原因开发语言和开发环境的限制,只能在这个基础上分析其他能够达成目的的方法,根据查阅资料,目前根据需求能实现的有: MFC 里面提供的 ActiveX 控件 ,在选择 Windows Media Player 组件,使用 WMP组件提供的类,对类的使用和操作来完成对多媒体播放器的设计以及实现,可以快速的完成一个功能强大,且兼容性和界面友好的多媒体播放器,在实际的项目的改方案会减少大量的成本,有较好的开发效率。 —— MCI(多媒体应用编程接口 ),能在比组件更高的层次上控制媒体设备,操作较为繁琐,却能完成各种功能。 综上所述两个条件分析,从开发效率上看的话, ActiveX 控件的相对更高一些,可以在组件提供的类对象上进行对多媒体播放器的各种功能的。 且对 ActiveX 的可读性更好一些 ,在组件限制的方面我们采用 MCI 编程,使用 MCI 强大的对系统多媒体接口的操控,从而开发出一个完善的播放程序。 13 3 系统总体设计 概要设计 播放器系系统的设计:打开播放器,播放器程序首先进行对话框信息的初始化,初始化的过程中初始化播放列表的信息,然后进行播放、暂停等等的播放控制,修改播放器列表,记得当前播放状态信息,程序结束。 根据流程图 所示播放系统流程图 图 播放流程图 程序的应用初始化信息有窗口的类型,系统函数的,对话框的框架,文档类等,对程序的各模块进行初始化,以 及播放器界面的初始化,然后让程序运行加载。 加载列表之前所保存的文件信息,显示预留提供操作,之后可以执行相关播放停止等控制操作,也可以把程序最小化托盘,在后台运行,需要时调出来使用,程序结束前可以进行播放器配置和播放信息的保存,以供下次打开程序加载使用。 根据功能划分为六大模块,详情见图 所示 . 14 图 系统功能结构图 打开 media player, media players 先进行初始化,在打开文件后进行播放列表的加载,接下来可以进行列表播放,列表数据的导入导出,列表的条目的排序和选项的上下挪动顺序,选中的选项移除和清空表格功能,见表下 所示。 表 播放列表模块功能设计 播放列表模块 播放 双击选中项来进行播放。 列表的导入 /导出 导入或导出列表信息到二进制文本。 选中项的上 /下移动 鼠标拖动或按键帮助移动改变选中项位置。 清空列表或移除选中项 点击按键完成清空或选中再点击功能按键。 播放模式模块有五种选择模式,当前只能存在一种模式五选一,菜单栏中的播放模式按键互相排除的单项选则。 还有有一个全屏播放模式。 见下表 所示。 15 表 播放模式模块功能设计 播放模式模 块 单个播放和循环播放 当前文件播放,或者连续的循环播放改文件。 顺序播放和循环播放 按顺序播放当前列表里的文件,播放完就停止。 循环当前播放。 随机播放 在当前中随机的选择下个播放的文件。 全屏 全屏播放 播放控制模块包括对播放状态的控制以及播放进度的控制。 见表 所示。 表 播放控制模块功能设计 播放控制模块 播放状态控制 包括暂停 ,播放 ,停止的播放状态进行选择,单击相应按键实现播放状态的切换,在没有打开文件和播放列表为空的情况下,按键点击无效。 通过上一个以及下一个进行列表中文件上 \下的切换,当前文件若是在列表中的最后一个文件,下一个时则切到列表最上方的文件。 播放进度控制 包括快进 ,进度条 ,快退。 单击快进前进总进度的百分之一,快退则是倒退总进度的百分之一。 进度条不仅仅用来显示当前的进度概况,通过拖动改变进度。 下面是音量控制模块。 见表 所示。 表 音量控制模块功能设计 媒体文件模块。 见表 所示。 表 文件模块功能设计 文件模块 文 件 打开并且播放媒体文件,对于无法兼容的文件不给供打开功能。 最后一个模块是计划关闭模块,主要是设置定时然后完成相应的关。基于vc的多媒体播放器设计与实现毕业设计论文(编辑修改稿)
相关推荐
L 等待被 Spider 程序处理。 新发现的 URL也被加入到这个队列中。 处理队列 : 当 Spider 程序开始处理时,他们被送到这个队列中 错误队列 : 如果在解析网页时出错, URL 将被送到这里。 该队 列中的 URL 不能被移入其他队列中 完成队列 : 如果解析网页没有出错, URL 将被送到这里。 该队列中的 URL 不能被移入其它队列中 在同一时间 URL 只能在一个队列中
tate13。 else if(in==539。 b01110) state=state14。 else if(in==539。 b01111) state=state15。 else if(in==539。 b10000) state=state16。 else if(in==539。 b10001) state=state17。 else if(in==539。
驾驶员驾驶行为差异的函数来确定车辆的加速度和减速度值,而并不是使用一个简单的加速度或减速度值。 加速度与减速度函数都是当前速度的函数。 根据海甸岛甸昆路口交通量车类型及平坦路况,本文为仿真小车、公交车两种车型的车辆 提供了两个曲线加速度和两个曲线减速度函数。 其中 最大加速度 和最大减速度 只有在上坡 或下坡 时为了维持一定的速 度而需要一个大于期望加速度的状况时才会使用到,对本文研究影响有限
0 √ profession 专业 Varchar 20 √ tel 电话 Varchar 20 √ 表 学生信息表 字段名 含义 类型 长度 是否可为空 是否作为主键 pno 专业代号 Varchar 10 √ pname 专业名称 Varchar 50 √ 表 专业信息表 字段名 含义 类型 长度 是否可为空 是否作为主键 classname 班级名称 Varchar 10 √ pno
R(3 DOWNTO 0)。 qb: out STD_LOGIC_VECTOR(3 DOWNTO 0))。 END count24。 ARCHITECTURE a1 OF count24 IS BEGIN process(clk) variable tma: STD_LOGIC_VECTOR(3 DOWNTO 0)。 variable tmb: STD_LOGIC_VECTOR(3 DOWNTO
等投资工具。 因而,中国要因地制宜,实事求是,根据自身的湖北经济学院本科毕业(设计)论文 6 特点和限制条件来发展网络金融。 到目前为止中国金融市场也有较大的进步,截至2020 年,通过第三方网络支付的支付量是 万亿元人民币,约占整个支付量 %。 支付总量的确不大,但其交易笔数已经占到支付总笔数的 30%。 有学者建议,目前互联网炙手可热,投资者蜂拥而至,但只要是金融产品都是有风险的