原本方案一是在Linux下进行开发,毕竟Linux有着一个诱人的特点,可移植,这是Windows不可比拟的优点。而且现在主流的视频播放器还是在Linux下开发。但是在Linux系统环境好是好,但是Windows环境更成熟。最终确认在Windows系统下进行代码的开发。

确定在Windows系统后,进一步确定用什么技术进行开发。因为课题设计就是基于QT,所以播放器界面用QT工具进行开发。但是音视频处理用什么处理呢?查阅很多资料,最终确定了用FFmpeg。FFmpeg现在主流的处理音视频的技术。其特点是开源,为大家学

习FFmpeg提供了方便。它能用来记载、变化数字视频、音频,而且可以把音视频变化为流。选择LGPL或GPL许可证。它包含了录制、转化和流化音视频的整套解决方案。它还包含了特别领先的音频和视频的编码和解码库,那就是libavcode,为了确保音频和视频的可移植性高效和编码及解码的质量高效,libavcodec中的代码选择从底层重新开始编写的。这些优点的FFmpeg,让我最终选择它来处理音频和视频。

视频播放器确定用什么技术实现后,就要确定用什么开发软件进行开发,把QT和FFmpeg整合到一起,最终确定用VisualStudio。进一步思考怎么才能把她们结合在一起呢?

尝试过多次加上查阅资料,必须下载一个插件qt-vs-addin。软件、实现技术都确定后,就确定用什么版本的。最终确定:

软件:VisualStudio2013QT5。4。2

插件:qt-vs-addin-1。2。5

框架:FFmpeg语言:C++里调用C语言。

2。2 软件设计架构

开发环境搭建好后,就要确定设计的整体流程。视频媒体播放器主要分为两个模块:

QT实现播放器界面并能够打开,FFmpeg实现内部音视频解析、解码、转码、输出。本毕业设计主要使用C++里调用C语言编程来进行开发,因为FFmpeg源码是C语言写的。通过QT图形库拖放形成播放器界面,然后在利用它的信号槽机制,将页面按钮和后台代码结合在一起,实现基本的效果。但代码主要是利用接口和接口的实现类,从而保证代码的可读性和安全性。

先从功能QT强大的图形库直接拖放排列形成播放器界面,拖放QLable对象制作播放窗口,拖放QPushButton对象制作按钮,拖放QSlider对象制作播放进度控制条。在利用QT的信号和槽机制,将界面按钮和具体功能实现函数结合起来,实现视频打开、播放、暂停、进度条拖动等功能。在底层代码具体实现对这些的支持。

播放器实现后,首先我们得选择一个视频播放,选择完后,接着视频播放器内部读取解析视频文件,确定视频文件则播放,不是则返回错误信息。视频播放时,我们想对视频做一些操作。如:暂停、关闭、拖动播放进度、调整屏幕大小等操作。比如点击暂停按钮,会触发一个方法,其会调用底层暂停这个代码得实现方法,从而实现视频的暂停。其它功能以此类推。

系统使用函数接口主要从可读性和安全性角度考虑,所有本设计底层代码方法定义在接口中,具体实现在其实现类里。系统功能接口的调用是实现视频播放器界面与底层代码之间的连接。在此视频播放器设计中,其主要是调用底层函数调用视频播放接口、音视频解析解码转码封装接口、视频播放控件接口、音频播放类接口、音视频播放处理线程接口。通过这些函数接口使得可以把跟视频解析、解码、转码有关的函数,视频播放控件有关的函数,音频播放有关的函数,音视频播放处理线程有关的函数分别封装起来,通过函数接口来调用。播放器FFmpeg内部解析视频播放文件,解析完如果文件找存在,在判断是视频还是音频找到不同的解码器,如果找不到对应的解码器,返回错误信息。代码设计中使用函数接口,代码的可读性、安全性、延续性得到保证。来自优I尔Y论S文C网WWw.YoueRw.com 加QQ7520~18766

上一篇:AT89C52单片机自行车里程速度计
下一篇:自治水下机器人轨迹跟踪控制研究

AT89C52单片机的数字广告大...

STC89C51单片机的温度报警器的设计+电路图

STC89C52单片机的倒车防撞系统的设计+电路图

STC89C52单片机的智能小车避障循迹系统设计

Matlab零相差前馈补偿在P...

STC89C51单片机的水温控制系...

AT89C51单片机智能遥控窗帘...

浅析智能仪表系统茬农业...

加强事业单位财务创新管...

面向农村的信息素养和信...

92年属猴30岁洧一劫2023 9...

唐诗宋词在网络言情小说中的运用文献综述

ANSYS基于周期结构的柴油机减振特性研究

中小企业员工激励存在的问题及对策研究

欠发达地区马克思主义大...

分组反思讨论法与传统教...

對高校校园体育文化建设的探讨【1930字】