课程设计论文-基于qt的嵌入式多媒体播放系统内容摘要:

y 的返回数据 如: system(“ echo \” mute 0\” /tmp/fifo” )。 //写命令 fgets(buf,1000,mp)。 //读取 mplay 返回数据 而 Qt 给我们提供了更方便的实现方法。 通过定义一个 QProcess 对象调用已编译好的 Mplayer。 QProcess *process = new QProcess()。 processsetProcessChannelMode(QProcess::MergedChannels)。 Processstart(“ mplayer – ac mad xxxxx” )。 在命令中添加 slave 和 quiet 就可以通过命令设置 Mplayer 实现相应的功能。 在 mplayer 源码中的, 中对这些命令有详细的讲解。 Processstart(“ mplayer – slave – quiet – ac mad xxxxx” )。 ( 1) 暂停功能 通过如下代码可以设置 Mplayer 暂停。 processwrite(“ pause\n” )。 执行这段代码的时候如果是播放状态就会暂停,暂停状态时就会继续播放。 ( 2)获取播放文件的总时间和当前播放进度 执行下面代码时, Mplayer 将时间在标准输出显示。 processwrite(get_time_pos\n)。 processwrite(get_time_length\n)。 通 过如下代码即可读出我们需要的信息: connect(process,SIGNAL(readyReadStandardOutput()),this,SLOT(back_message_slots()))。 process 有可读取的信息时,发出信号,在槽函数 back_message_slots()中读取信息。 void MPlayer::back_message_slots() { while(processcanReadLine()) { QString message(processreadLine())。 //message 即为读取的信息我们可以根据需要取我们要的信息如 16 //文件总时间为: ANS_LENGTH= //当前时间为: ANS_TIME_POSITION= } } (3)快进功能 seek value [type] Seek to some place in the movie. 0 is a relative seek of +/ value seconds (default). 1 is a seek to value % in the movie. 2 is a seek to an absolute position of value seconds. 下面代码即可实现快进功能: processwrite(“ seek ** 1\n” )。 ( 4) 音量调节 volume value [abs] Increase/decrease volume or set it to value if [abs] is nonzero. 下面代码即可实现快进功能: Processwrite(“ volume 1\n” )。 //音量减小 Processwrite(“ volume +1\n” )。 //音量增加 ( 5)静音功能 mute [value] Toggle sound output muting or set it to [value] when [value] = 0 (1 == on, 0 == off). 下面代码即可实现快进功能: processwrite(mute 0\n)。 //开启静音 processwrite(mute 1\n)。 //关闭静音 (6) 定位视频窗口 通过上面的代码基本功能实现了,可是播放视频的时候发现又弹出一个窗口。 并没有出现在我们的窗口里。 如下代码即可时间窗口的定位。 QString mon = mplayer slave quiet ac mad zoom movie/ + file_name + wid + QString::number(widgetwinId())。 processstart(mon)。 红色部分实现窗 口的定位。 Widget 是一个 QWidget 对象。 通过 winId 可17 以获得一个数字, wid 既将视频输出定位到 widget 窗体部件中。 注意: wid 参数只在 X1 directX 和 OpenGL 中适用。 mplayer 界面 UI 搭建 利 用 前 面 安 装 的 designer 搭建 UI 界 面 , 并 将 其 保 存 在/home/linux/mplayer/ 界面搭建效果如图 7。 图 7 mplayer 界面搭建效果 mplayer 代码编写 在 /home/linux/mplayer/下创 建 、 、 、。 其中 为主函数; 为 mplayer 播放器的主程序代码,实现播放器的各项功能; 为 的头文件,其中包括 中各个函数以及变量声明; 为资源文件,中间包括mplayer 界面设计的界面元素相关链接信息。 相关代码请查阅附件。 18 mplayer 工程编译与运行结果 如图 8所示,选择编译或运行 图 8 工程的编 译与运行 运行结果如图 图 图 11所示 图 9 播放效果 编译 运行 19 图 10 暂停效果 图 11 静音效果 通过运行可以看出, mplayer 相关功能已经实现,实现了多媒体的音视频播放功能。 20 6 总结 从选课题开始,已经 4 个多月 ,这 4个多月中 ,我们经历了风风雨雨。 4个月的时间转眼即逝。 这 4 个月中,我们边忙于找工作、实习,还要为我们的毕业设计查询资料、寻找方案。 在这期间我们有茫然,有迷惑,也有 豁然开朗的瞬间;又失败的痛楚,也有成功的甜蜜;有压力,也有轻松快哉。 在毕业设计中,我们遇到了很多的难题,但是有我们的老师为我们指引方向和指导,也有同学的支持、鼓舞和帮助,终于使我克服了重重困难和阻碍,完成了这个设计的目标和任务。 虽然它还离我心中的完美想去甚远,但是它得 成功使我认识到了自己的能力和相关的不足,使我能在未来弥补自身的不足。 21 参考文献 [1] 余雷 .基于 RFID 电子标签的物联网物流管理系统 [J].微计算机信息,:233235 [2] 彭宣戈 .一种嵌入式 Inter 接口系统 [J].微计算机信息, : 89 [3]王亚民 , 陈青 , 刘畅生 ,等 . 组态软件设计与开发 [M]. 西安 :西安电子科技大学出版社 , 2020. [4] Stevens, Stephen , UNIX 环境高级编程 [M], 第二版, 北京:人民邮电出版社, 2020. 22 致 谢 23 附 录 include QApplication include int main(int argc, char **argv) { QApplication app(argc, argv)。 MPlayer player。 ()。 return ()。 } include include QDebug include MPlayer::MPlayer(QWidget *parent):QDialog(parent) { setupUi(this)。 isPlay = true。 isSound = true。 isStop = false。 //play QIcon icon_play。 (QPixmap(QString::fromUtf8(images/pause_e)), QIcon::Normal, QIcon::Off)。 pushButton_2setIcon(icon_play)。 //stop QIcon icon_stop。 (QPixmap(QString::fromUtf8(images/stop_en)), QIcon::Normal, QIcon::Off)。 pushButton_3setIcon(icon_stop)。 //reward QIcon icon_reward。 (QPixmap(QString::fromUtf8(images/rewar)), QIcon::Normal, QIcon::Off)。 pushButton_4setIcon(icon_reward)。 //forward QIcon icon_forward。 24 (QPixmap(QString::fromUtf8(images/forw)), QIcon::Normal, QIcon::Off)。 pushButton_5setIcon(icon_forwar。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。