课程设计论文-基于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。课程设计论文-基于qt的嵌入式多媒体播放系统
相关推荐
;该键值为 1 LJMP NDK1 ; 跳到 NDK1 执行相应的功能程序 KK2: CJNE A,0BH,KK3 ;相等说明该行第三列有键按下,不等则转移 MOV BUFF,2 ;该键值为 2 LJMP NDK1 ;跳到 NDK1 执行相应的功能程序 KK3: CJNE A,07H,KK4 ;相等说明该行第四列有键按下,不等则转移 MOV BUFF,3 ;该键值为 2 LJMP NDK1
改方法参见程序优化)。 当不响铃并且生日标志 BS 有效时显示 HAPPY 其单列开来。 本程序由生日标志 BS控制,当到达生日时间时,T0 中断程序会将 BS 置 1 使之有效在显示主程序中通过判断 BS 的置来控制是否执行本模块 标 志 BS 有效时显示 HAPPY 其单列开来。 本程序由生日标志 BS控制,当到达生日时间时, T0 中断程序会将 BS 置 1 使之有效在显示主程序中通过判断
③ 存储器操作命令 Write Scratchpad(写暂存存储器) [4Eh] 这个命令向 DS18B20 的暂存器中写入数据,开始位置在地址 2。 接下来写入的两个字节将被存到暂存器中的地址位置 2和 3。 可以在任何时刻发出复位命令来中止写入。 Read Scratchpad(读暂存存储器) [BEh] 这个命令读取暂存器的内容。 读取将从字节 0开始,一直进行下去,直到第 9(字节 8,
size 数字( KB) 最大返回数据,可限制用户下载的数据大小 reference_age 数字 LRU 算法中指定 LRU 时间 quick_abort_min 数字 (KB) 断点续传最小值 quick_abort_max 数字 (KB) 断点续传最大值 quick_abort_pct 数字 (percent) 超过值认为续传成功 negative_ttl 数字
(gca,39。 Position39。 ),... 39。 Xaxislacation39。 ,39。 bottom39。 ,... 39。 YAxislocation39。 ,39。 ringt39。 ,39。 Color39。 ,39。 None39。 ,... 39。 Xcolor39。 ,39。 k39。 ,39。 YColor39。 ,39。 k39。 )。 ht=line(t,x
elsif(sel(2)=39。 039。 )then szkzj=39。 039。 gnkzj=39。 139。 elsif(sel(3)=39。 039。 ) then szkzj=39。 039。 gnkzj=39。 139。 end if。 elsif(R(3)=39。 039。 ) then 第 三 章 硬件原理及软件设计 10 if(sel(0)=39。 039。 )then