您的位置:首页 > 编程语言 > Qt开发

qt界面叠加视频OSD双层显示

2015-07-04 13:43 363 查看
最终代码存放于

http://download.csdn.net/detail/lzh445096/8849147

本人负责的是UI界面,提供给底层应用程序接口函数,此接口函数功能为向指定路径的文件中写入命令字符,应用程序去到该文件中读取到相应的命令字符则实现某些命令,其底层的实现及编解码的模块本人没有涉及。

1. OSD双层显示

fb2显示qt界面 fb0显示视频。调用int fd =open("/dev/fb2", O_RDWR)接口即可打开qt界面显示层

2. qt界面控制

定义文件指针FILE * m_fpCmd ;

创建文件 #define CMD_FIFO_FILE "/tmp/DVSDK_DEMOS_CMD" ;

打开文件m_fpCmd =fopen(CMD_FIFO_FILE, "w");

向文件中写入字符fputc(cmd,m_fpCmd) ;

底层程序读取到该文件字符,就执行视频播放或录像的功能

3. qt层透明

this->setWindowOpacity(0.7);//设置透明1-全体透明

this->setAttribute(Qt::WA_TranslucentBackground, true);//设置透明2-窗体标题栏不透明,背景透明

本例中要实现qt界面背景透明只需点击主窗体,点鼠标右键,选择Change styleSheet,设置背景色为rgb(0,0,0),styleSheet真是好东西!

4. qt程序关闭

三个应用程序分别对应录像、预览和视频文件播放三个模式,三个模式间可切换,3个进程都包含qt界面显示的子进程,模式切换时要求这个子进程会关闭再重启,

#include QApplication时调用qApp->quit()实现。

以上只是一个概要的分析,整个框架实际上是一个相当复杂的流程,代码改编自TI davinci的dvsdk的qt官方demo,这一步实现以后,我这部分的UI界面模块基本完成,从对qt完全陌生到成功学习并做出一个可读写文件、播放视频、按键控制相关功能、电量时间地理位置显示等功能完善的UI界面,确实很有成就感。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: