基于mplayer的视频播放器的设计与开发_第1页
基于mplayer的视频播放器的设计与开发_第2页
基于mplayer的视频播放器的设计与开发_第3页
基于mplayer的视频播放器的设计与开发_第4页
基于mplayer的视频播放器的设计与开发_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

1、基于mplayer的视频播放器的设计与开发班 级: 学号: 姓 名: 学 院: 专 业: 指导教师: 年 月基于mplayer的视频播放器的设计与开发摘要 在学习嵌入式linux(Ubuntu)过程中发现在linux下播放器软件比较少,在一次偶然的情况下在网上看到关于其他播放器的一个技术博客,文中讲到了MPlayer如何嵌入到qt中,有感而发,作者运用所学的知识,开发了一款Ubuntu下的视频播放器,主要运用qt、mplayer相关知识实现了对常见格式视频的播放。这款播放器操作简单而且加入了对低配电脑的优化,相比市面上成熟的播放器来说,差距还是很大的,但实现了基本功能,占用资源相对较小,这也算

2、是一个小小的优势,程序采用qt5+Mplayer进行开发,两者都是开源并且能跨平台,这也给软件的跨平台打下了很好的基础,只要稍加改动就可以移植到windows下,这也是该软件的另一个优势,在些前提下,通过详细的设计,编码,调试,初步实现了设计目标。而且后期经过一系列测试,稳定实现了基本播放功能外的快进快退,全屏播放等功能。 关键词:视频播放器,QT5,mplayerDesign and development of video player based on MPlayerAbstractIn the process of learning embedded Linux (Ubuntu), f

3、ound that less under Linux player software, in the case of a chance to see about other players online a technology blog, this paper talked about MPlayer is how to embed into the qt, burst, the author using the learned knowledge, developed a video player under Ubuntu, mainly use qt, MPlayer related k

4、nowledge to realize the common format for video playback. As the player is simple and joined the optimization of a PC in low, compared with the mature of players on the market, the gap is very big still, but to achieve the basic functions, occupancy resources are relatively small, it is a small adva

5、ntage, and the program using qt5 + Mplayer to development, both open source and can cross platform, which has laid a good foundation for software cross-platform, with slight changes can be ported to Windows, this also is another advantage of the software, under the premise that some, through detaile

6、d design, coding, debugging, preliminary design target is realized. And late after a series of tests, stability to achieve the basic function of fast forward fast rewind, full-screen playback, and other functions.Keywords: video player, QT5, mplayer目录1 引言11.1 选题的背景及意义11.2 研究的目的和目标11.3 系统设计思路11.4 论文内

7、容与结构12 开发平台以及用到的相关技术32.1 Qt技术介绍32.1.1 MPlayer32.2 开发及运行环境33 系统分析43.1 可行性分析43.1.1 经济可行性43.1.2 技术可行性43.1.3 操作可行性43.1.4 预计实现的功能43.2 需求分析与设计53.2.1 需求分析的意义53.2.2 系统功能的设计与描述54 详细设计与开发64.1 播放控制功能64.1.1 播放暂停功能64.2 进度控制功能74.3 QProcess 与mplayer 核心功能85 软件的系统测试125.1 编写目的125.2 测试的功能12总结13参考文献14致谢151 引言1.1 选题的背景及

8、意义工作学习需要用到linux系统(例如Ubuntu)但在这些系统下对文本文档、音频、视频文件的处理软件与windows相比种类少功能不过全面,有些开源软件操作不够方便。针对这个问题,在学习工程中萌发了设计一款自己的视频播放器,运用所学知识,结合开源的mplayer和qt开发。 1.2 研究的目的和目标开发这款软件只是为了完成自己的一个设想,在实践中加深的对知识的理解,熟练掌握qt开发软件方法过程。1.3 系统设计思路第一阶段:进行需求分析和可行性分析设计,并撰写需求分析文档。第二阶段:进行概要分析设计,并撰写概要设计说明书。第三阶段:进行详细分析设计,并撰写详细设计说明书。第四阶段:下载mp

9、layer源码或用apt-get install mplayer(ubuntu下)。第五阶段:编程实现视频播放器等的一些基础功能。播放功能,暂停功能,快进、快退功能等等。第六阶段:优化程序,美化界面。将程序中出现的错误进行调试,美化操作界面。第七阶段:对系统进行单元测试和综合测试,撰写测试报告,以便后期对软件进行维护。1.4 论文内容与结构本文介绍了基于qt视频播放器的设计与开发,此款播放器通过实现如播放,暂停,快进快退等一系列基本功能。实现基本的视频播放功能,简便易用。第 1 章:开发的背景和开发的意义。第 2 章:平台介绍。第 3 章:系统分析。第 4 章:详细设计与开发。第 5 章:软件

10、的系统测试。第 6 章:论文研究成果展示和工作总结,最后是参考文献和致谢。182 开发平台以及用到的相关技术2.1 Qt技术介绍Qt是一个跨平台的C+图形用户界面应用程序开发框架。它为应用程序开发者提供了建立艺术级图形用户界面所需的所有功能。本软件用到了qt信号槽机制,以及QProcess,通过QProcess的将mpalyer进程内嵌到程序中,并通过QProcess的write对mplayer进行控制,传递控制命令,值得一提的是程序中用到的获得窗口句柄函数在qt4中是WId QWidget:winId () const ,而在qt3中是QWidget:handle(),我所用的是q

11、t5同qt4中一致,在此声明,避免不同版本造成的错误。2.1.1 MPlayerMPlayer可在各主流操作系统使用,例如Linux和其他类Unix系统、Windows及Mac OS X系统。MPlayer最初的名字叫"MPlayer - The Movie Player for Linux",不过后来开发者们简称其为"MPlayer - The Movie Player",原因是MPlayer可以在所有平台上运行。程序中主要用到MPlayer的从模式,即 slave,通过 wid参数与qt控件的句柄(也就是WId QWidget:winId () co

12、nst 的返回值)进行绑定,实现将mplayer嵌入到qt进程中,并通过qt进程对其进行控制。2.2 开发及运行环境A:硬件平台: CPU奔腾双核 (主频2.0GHz以上) 内存1G/2G 32/64位PC机 160G硬盘 以上l B:软件平台: 操作系统:Ubuntu开发工具:Qt5 Creator。3 系统分析3.1 可行性分析可行性研究(feasibility study),弄清楚待开发项目是否可行,有多大风险。下面我们将结合实际进行一系列分析。3.1.1 经济可行性经济可行性的主要目的是

13、分析当前软件是否在经济方面可行,由于开发一个基于计算机的系统主要是为了获取较好的经济效益和社会效益。所以对于经济的可行性主要从设计软件的成本来看,然基于计算机系统的成本主要由一下4部分组成: 1) 系统开发费用。 2) 系统安装、运行和维护费用。 4) 人员培训费用。 3.1.2 技术可行性技术可行性主要是分析当前软件是否在技术方面是可行的,由于初期工作比较简单,往往都是许多工作一起完成,造成了一些不确定的因素。然而这些不确定性的因素经常会给技术可行性论证带来困难。该乐播放器采用Qt5运行平台,实质的语言是C/C+语言,它开发速度快,简单易用,技术成熟,这使得在开发软件的过程中简单易懂。在现行

14、主流配置下基本可以忽略硬件。所以该软件在技术上也是可行的。3.1.3 操作可行性操作可行性,顾名思义就是说软件在操作方面是否可行。播放、暂停等功能一目了然。在一些不懂的功能方面还提示了用户的使用方法。所以软件在操作方面是可行的。3.1.4 预计实现的功能该软件预计实现的功能:播放、暂停、快进、快退、打开文件、全屏(普通模式)3.2 需求分析与设计软件需求是指用户对目标软件系统在功能、性能、行为、设计约束等方面的期望。需求分析就是通过对应用问题及其坏境的分析与理解采用一系列的分析方法和技术将用户的需求逐步精确化、完全化、一致化,最终形成需求规模说明文档的过程。本节将从不同的角度描述系统的需求。3

15、.2.1 需求分析的意义下面通过需求分析的步骤来分析该软件在需求分析的意义:该软件没有相关的组织部门,所以调查其情况没有必要。由于该软件没有涉及到相应的部门,所以只需关心软件数据的输入和输出即可。协助用户明确对该软件的一些要求,比如播放功能,暂停功能,等。结合以上写出分析报告。3.2.2 系统功能的设计与描述 该播放器主要划分为以下4个功能模块,每个功能模块的作用描述如下:(1) 播放控制:控制歌曲的播放状态,如:播放、暂停、下一曲。(2) 进度控制:通过点击、拖拽slider调整视频播放进度。 Ø (3) 声音控制:静音、调整音量大小。(4) 全屏播放:切换全屏

16、模式和正常模式。4 详细设计与开发该阶段主要简述的是程序设计阶段的主要功能实现极其介绍,详细的讲解了播放器实现的基本核心原理以及具体的功能,通过画图的方式详细设计每个模块的比如:播放功能,暂停功能,快进快退功能,全屏播放功能,详细功能如下图:图4 播放器基本功能图4.1 播放器核心原理通过qt中的QProcess类结合MPlayer的从模式(-slave)将Mplayer的播放内容绑定到qt控件上,具体实现:Mplayer -slave -zoom -quiet -wid QString:number(screen->winId() fileName;参数解释:-salve mplaye

17、r从模式-zoom:在可能的情况下允许使用软件缩放。-wid:用来绑定qt控件通过screen->winId()获取控件id-quiet:使得控制台消息少输出; 对慢机器或者不能正确处理回车符的旧机器特别有用。(此处是对旧机器的优化)通过向QProcess写入命令,来获取MPlayer的状态,以及控制MPlayer的播放动作,举例说明如下:例如:myprocess->write("mute 0n");通过向myprocess中写入命令就可以控制播放事件。此例中是静音命令。此外像上面例子中不需要返回值,需要mplayer进程返回参数的还需要通过qt信号槽实现返回参

18、数的接收:connect(myprocess,SIGNAL(readyReadStandardOutput(),this,SLOT(back_message_slot();通过信号readyReadStandardOutPut()来处罚返回数据处理槽函数 通过myprocess->canReadLine()函数的返回值,可以确定是否能够读取。通过QString message(myprocess->readLine();获取的message中便保存了返回的数据。比如返回当前播放文件名message中会返回ANS_FILENAME = 234.rm通过解析就可获得需要数据了,其他信息

19、与此类似。具体原理图如下:图4.1 qt控制mplayer示意图4.2 播放控制功能该功能模块中,主要实现了对视频的控制,包括了播放功能,暂停功能和快进快退、全屏缩放功能。4.2.1 文件加载及进程启动具体流程如下:图4.2.1 文件加载流程图4.2.1 播放暂停功能该模块主要实现了播放和暂停,通过向mplayer进程发送命令来实现。播放暂停命令分别为:myprocess->write("startn") myprocess->write("stopn")4.3 进度控制功能该模块实现了进度条控制,和按钮控制两种:进度条控制通过重载qslid

20、er实现,qt中QSlider默认的拖拽无效,通过重载重新实现鼠标按下事件来实现预期功能,并且通过Qlabel显示当前时间与总时间,具体代码如下:void MySlider:mousePressEvent(QMouseEvent *e) this->setValue(e->x()*this->maximum()/this->width(); QSlider:mousePressEvent(e);void MySlider:mouseReleaseEvent(QMouseEvent *ev) this->setValue(ev->x()*this->ma

21、ximum()/this->width(); emit jump(); QSlider:mouseReleaseEvent(ev);按钮控制代码:void Widget:slider_release_slot() QString cmd("seek "+QString:number(slider->value()+" 2n"); qDebug() <<" cmd:" << cmd.toUtf8(); myprocess->write(cmd.toUtf8();4.4 音量控制程序中音量控制方式

22、和播放暂停相似,静音功能实现如下:myprocess->write(“mute 0n”);myprocess->write(“mute 1n”);音量滑块实现如下;myprocess->write(“volume  1n”);这里的1可以设置1-100任意整数。两种音量控制相互关联,点击音量喇叭按钮会切换静音和当前音量,并显示不同的图标,于此同时当前音量值会保存,恢复音量时,会恢复到静音时的值,而且在静音状态下调节音量滑块,会自动恢复声音。拖动音量滑块时,静音按钮会显示不同的图标来显示音量大小,并且将音量值显示到一个QLabel上,让用户更加直观的看到。图4.4.1

23、 静音效果图图4.4.2 正常效果图4.5 全屏控制程序中对全屏的设计简单,通过设置控件全屏来实现。全屏时会对控制面板进行隐藏,通过一个计时器来实现,5秒后自动隐藏,通过对鼠标移动的捕获,实现移动鼠标显示控制面板,图4.5.1 全屏示例图图4.5.2 正常模式示例图5 软件的系统测试5.1 编写目的一款良好的软件必须经过不断的测试,才能成为一款好的软件。5.2 测试的功能5.2.1 播放控制功能(播放,暂停,快进,快退)表5.1 播放功能测试表名称:播放功能参与者:用户目标:用户点击播放按钮播放前置条件:播放器运行测试结果:能够通过点击播放按钮播放表5.2 暂停功能测试表名称:暂停功能参与者:

24、用户目标:点击播放/暂停按钮实现播放控制前置条件:播放器运行测试结果:能够通过点击播放/暂停按钮实现播放控制表5.3 快进快退功能测试表名称:快进快退参与者:用户目标:用户点击快进快退按钮快进快退前置条件:播放器运行测试结果:能够通过点击快进快退按钮快进快退表5.4 静音功能测试表名称:静音功能参与者:用户目标:用户点击静音按钮播放前置条件:播放器运行测试结果:能够通过点击静音按钮实现静音和恢复表5.5 音量滑块功能测试表名称:音量滑块功能参与者:用户目标:拖动音量滑块实现对音量值的控制前置条件:播放器运行测试结果:能够通过拖动音量滑块实现对音量大小的控制总结通过这次毕业设计加深了对qt开发的

25、了解,尤其是qt中对界面代码与功能代码分离的技巧,qt中信号与槽机制的理解,以及mplayer的控制模式,对以后编程有很大进步意义,通过这次开发,真正提高了自己的编程技巧,学到了不少经验,在论文中我充分利用了大学学到的知识,写论文的过程有点累,但是等辛苦几个月后,看到自己的成果时,觉一切都是值得的,付出多少就收获多少,这也是人生最公平的地方吧,这是每个本科生都要经历,也必须经历的过程,这将是我们临毕业前一段最难忘的回忆,不仅如此,通过这次经历,我明白了一个深刻的道理,做什么事,不仅是写论文,都要靠自己,靠别人帮忙永远不会有什么大的收获,只有把东西强化到自己脑子里才能永远立于不败之地,有时候想想

26、,把时间学习了,和把时间娱乐了,时间都在不停的走,但却是完全不同的成长感受,学习能收获知识,娱乐无疑是在消磨时光,武装自己的大脑,永远都不会有任何损失,所以今后要多花时间武装大脑,不断提高自己。参考文献1程杰 大话程序设计 M 北京:清华大学出版社,2009.12,50-1002丁林松,黄丽琴. QT4图形设计与嵌入式开发M.北京:人民邮电出版社,2009. 3霍亚飞.QT Creator快速入门M.北京:北京航空航天大学出版社,2012. 4蔡志明,卢传富,李立夏.精通QT4编程(第2版)M.北京:电子工业出版社,2011:30-505孙琼.嵌入式LINUX 应用程序开发详解M.北京:人民邮电出版社,2006. 6倪继利.QT及Linux操作系统窗口设计M.北京:电子工业出版社,2006. 7Jasmin Blanchette,Mark Summerfield.C+

温馨提示

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

评论

0/150

提交评论