3.1.1 后端程序简介
本系统使用Mplayer 作为其后端程序。MPlayer被评为Linux 下的最佳媒体播放工具,不需要任何系统解码器就可以播放包括视频、音频、流媒体、广播、电视等各种媒体。
Mplayer 另一个重要特点在于其开源性。
Realplayer,Windows Media Player,Quick Time 等许多播放软件都是性能优秀的播放软件,但由于它们都不开放源代码,给移植带来了麻烦。同时MPlayer 还具有良电感器生产好的移植性,可以移植到许多非X86 平台上,MPlayer 软件包中含有针对ARM 架构的优化代码,这些代码利用ARM 的特性加快了对媒体的处理速度。
基于以上多个原因,本系统选择了MPlayer 作为娱乐终端的播放软件。本系统通过移植Mplayer 来实现对视频的播放功能。Mplayer 编、解码模块,是系统的音、视频处理中心,在mplayer 的编解码库中,包含的大量的音、视频格式处理程序,经过编译优化过的mplayer 可以完成对大多数音、视频格式高效的编解码工作。
3.1.2 前端程序的设计与播放器的实现
主界面窗口有一个显示屏和一些控制按钮,包括播放、暂停、下一首、上一首、音量调整以及播放进度条。文件操作窗口可以使用户选择要播放的文件。
播放列表用来播放用户加载的多媒体文件。
MPlayer 默认全屏播放,但在GUI 中一般都是指定区域或者控制来播放。这样显得美观,MPlayer 支持在指定的X 窗口播放的功能。用-wid 参数告诉窗口ID即可。例如:mplayer test.mpg -wid 0x00029 #0x0029是XID,而QT 的控件都是从QWidget 继承下来,因此它本身也有wid,这样只要大功率电感用 QWidget::winID() 取出WID,即可实现在指定窗口播放视频的功能。
本模块是建立一个Qt GUI 程序。然后用一个label控件来播放视屏,用一个进度条显示播放的进度,用按键显播放,暂停,上一首,下一首,停止和添加资源文件。然后用一个Qprocess 在后台执行MPlayer,并把label 的WID 传给它。然后把MPlayer 的输入输出重定向,把原本从标准输入接收命令变成从GUI 的接收命令。
3.1.3 播放功能设计
播放器实现的软件流程图如图4 所示:
图4 播放器软件流程图。
通过定义一个QProcess 对象调用已编译好的Mplayer。
QProcess *process = 电感器厂家new QProcess();
process->setProcessChannelMode(QProcess::MergedChannels);
Process->start("mplayer –ac –mad xxxxx");
在命令中添加 -slave 和 -quiet 就可以通过命令设置Mplayer 实现相应的功能。Process->start("mplayer–slave –quiet –ac –mad xxxxx")。
下面对播放器的暂停播放功能和音量调节进行介绍。
① 播放暂停功能设计
通过这段代码可以设置Mplayer 暂停:process->write("pause ");执行这段代码的时候在播放状态下就会暂停,暂停状态下就会继续播放。
② 音量调节
下面代码即可实现音量调节的功能:
Process->write("volume -1 "); //音量减小;
Process->write("volume +1 "); //音量增加;
Process->write("volume XX 1 "); //音量设置成指定值
一体成型电感该系统使用如下代码实现音量调节:
QString cmd="volume" +QString::number(value)+" 1 ";
process->write(cmd.toLocal8Bit()。data());
系统最终实现的实验效果图如图5 所示:
图5 播放器模块实验结果图
3.2 游戏模块的设计
本系统设计了一个打砖块游戏。通过建立一个打砖块的游戏类CannonField,包含角度int angle、力度int force、是否正在射击bool isShooting 等成员,具有设置角度setAngle(int angle)、设置力度setForce(intforce)、射击shoot()、运动轨迹shotRect()、游戏控制newTarget()、 setGameOver()、restartGame()等槽函数,能发出击中hit() 、未击中missed()、角度变化angleChanged(int newAngle) 力度变化force Changed(int newForce)等信号。
游戏开始时使用随机函数在指定区域内显示一个砖块,点击射击按钮时通过setAngle 和setForce 设置的角度和力度,使用shoot()进行射击,通过发出的击中hit()或未击中missed()信号来作出相应的动作。仿真效果图如图6 所示:
一种铅酸蓄电池充电器的设计与制作随着各种电动汽车的发展,动力电池充电器的需求将越来越多。充电器质量的优劣关系到电池性能的发挥及寿命、充电器本身的智能化关系到用户的使用方便及电力系统电力计费等管理问题。不同电池,特点不同,充电策略也不
基于平台的变速电动机方案开发从家庭中常用的冰箱、洗衣机、洗碗机到工厂及加工厂的水泵和风扇、以及办公室里的空调系统,中小型电机都需要得到有效的控制。在商业、工业和家庭环境中,我们对电动机的依赖无处不在,据估计电动机消耗的电能占据了
基于PCI总线的ARINC429接口卡设计摘要:利用PCI专用接口芯片PCI9052和DEI1016 429总线收发芯片设计了ARINC429接口卡,采用DSP作为主控CPU完成数据自动处理,用双口RAM完成DSP与PCI总线数据交换。实验表