一、实训目的
1. 掌握Qt开发环境:通过学习和实践,学习如何搭建Qt开发环境,熟悉Qt的基本使用方法,掌握Qt的应用技术;
2. 界面设计与框架:了解Qt的界面布局、整体设计思路以及框架解析,学会构建一个能够显示图片视频、日期时间、天气等信息的广告显示终端;
3. 工具软件使用:了解Qt相关的工具软件;
4. 多模块功能实现:实训内容包括图片及视频播放、日期和时间显示、天气信息处理及快进快退等功能模块的实现,全面掌握广告机系统的各个组成部分;
5. 项目部署:将开发完成的广告机界面程序部署到实际设备上。
二、实训内容
通过Qt实现的广告机服务器客户端程序,包括TCP通信、图片播放、日期显示、天气信息处理和滚动信息显示等功能。客户端通过TCP连接服务器,接收天气、图片等信息,并进行显示。其中主要包括以下几个方面内容:
1. 天气信息获取:能够获取并显示当前天气信息;
2. 日期显示功能:包括日期显示模块,用于显示当前日期;
3. 时间显示功能:显示当前时间,支持动态更新时间;
4. 图片播放功能:可以显示和轮播预先设定好的图片,展示广告内容,可以通过自定义控件实现;
5. 视频播放功能:利用Qt框架集成MPlayer或其他多媒体播放器来实现视频播放功能广告机可以播放指定视频,展示广告内容;
6. 按键功能:可实现音量大小,视频进度条以及切换视频或海报的功能。
三、实训设备要求
计算机一台,XYD的Linux广告机一台, Xshell7以及Xftp7软件。
四、实训操作步骤
1. 环境搭建:
(1)安装Linux系统,广告机通常运行在嵌入式Linux平台上;
(2)安装Qt开发环境,包括Qt Creator以及相关的依赖库;
(3)设置交叉编译器,添加一个qt的交叉编译套件,确保能够编译适用于嵌入式平台的代码。
2. 项目创建与界面设计:
(1)使用Qt创建广告机的应用界面,包括广告图片显示、视频播放、日期时间显示、天气信息显示等模块;
(2)使用Qt Creator进行界面设计,选择“新建项目”->“应用程序”,然后在弹出的对话框中选择“Qt Widgets Application”;
图1:新建工程步骤
(3)新建工程完毕后,点击Forms下的widget.ui进行广告机的界面设计,左侧添加需要用到的部件,然后进行统一布局,设置好区域,包括日期、按键等功能位置,更改文本显示框;
图2:广告机布局
(4)广告机布局好后,即可添加资源文件。在qt工程目录下新建文件夹,并把准备好的图片放进去,并统一更改好名字方便后面使用;
图3:新建文件夹存放图片
(5)将大小图以及按钮图片存放下面文件夹中,视频不用添加进去;
图4:图片存放位置
(6)右键按钮,点击改变样式表-添加资源-border-image选择图片文件夹路径即可添加图片到界面中,将所需图片全部添加到广告机布局中;
图5:添加图片
(7)编写函数实现相应功能。
2.1 天气信息的获取
将获取到的天气信息显示在广告机界面上的相应区域。可以设置定时刷新功能,定期更新天气信息。实现天气预报功能,显示今天、明天的天气以及温度,确保天气信息获取;
图6:获取天气代码
图7:打印天气信息
图8:按键上显示今天、明天天气代码
2.2 日期及时间显示功能
图9:时间刷新代码
右键按钮转到槽即可生成自定义函数,将格式化后的日期显示在界面上;
图10:日期时间显示代码
图11:日期时间输出结果
2.3 图片播放功能
(1)判断是否存在下一条目录
图12:判断图片目录是否存在代码
(2)实现大小图的切换功能
图13:实现大小图的切换代码
使用QTimer定时器实现图片的自动切换,设置合适的间隔时间,大图切换时间设置为5秒一张,小图切换时间设置为3秒一张;
图14:定义并设置图片播放时间代码
2.4 视频播放功能
(1)判断是否存在下一条目录
图15:判断视频目录是否存在代码
(2)实现视频的播放功能
选择mplayer作为视频播放器,可以通过调用外部命令来启动和控制mplayer播放视频;
图16:实现视频播放代码
2.5 按键功能的实现
(1)实现快进快退功能
可以通过鼠标点击或拖动滑块来控制播放进度;
图17:实现快进、快退功能代码
(2)实现上一首下一首功能
通过连接按钮点击事件到相应的槽函数,实现上一首和下一首的功能。将视频文件添加到路径中,设置播放列表,确保有两个及两个以上的视频可以切换播放;
图18:实现上一首、下一首播放功能代码
(3)实现播放暂停功能
当没有按下播放暂停键时,轮播大图广告;当点击播放按钮时,调用pause()函数开始播放视;当点击暂停播放时,暂停播放视频;多次检验并调试好,确保功能正常使用;
图19:实现播放、暂停功能代码
(4)实现停止功能
当点击停止按钮时,调用QMediaPlayer的stop()方法,使视频结束播放,并重置播放进度到初始状态,其次开始播放大图广告;
图20:实现停止功能代码
(5)实现音量控制功能
在Qt中,可以通过QMediaPlayer类来控制音量,QMediaPlayer提供了volume属性,可以直接设置音量大小。当旋转音量按钮时,音量会改变其大小;
图21:实现音量控制功能代码
(6)实现进度条拖动改变进度功能
使用QSlider控件实现进度条,用户可以通过拖动进度条来控制视频的播放进度。
图22:实现进度条拖动改变进度功能代码
(7)实现进度条时间显示功能
播放过程中实时更新进度条以及播放时间,当视频未播放时,时间显示为00:00,当视频开始播放时,时间进度条随着播放进度显示当前时间进度,显示视频的总时间和当前播放进度;
当点击暂停按钮时,视频停止播放,时间进度显示停止更新;当点击停止按钮时,视频结束播放,时间进度条清空为00:00,开始播放视频;
图23:实现进度条显示时间功能
3. 功能实现:
实现TCP通信模块,使客户端能够通过TCP连接服务器,接收并显示天气、图片等信息。
3.1 天气信息的获取功能实现
图1:天气信息的获取
3.2 日期及时间显示功能实现
图2:日期及时间的显示
图3:日期及时间的打印
3.3 图片播放功能实现
图4:实现图片播放功能 图5:实现板子上显示图片播放功能
3.4 视频播放功能实现
图6:实现视频播放功能
3.5 按键功能的实现
(1)实现快进快退功能
图7:实现视频快进功能 图8:实现视频快进功能
(2)实现上一首下一首功能
图9:实现上一条视频播放功能 图10:实现下一条视频播放功能
(3)实现播放暂停功能
图11:实现视频播放功能 图12:实现视频暂停功能
(4)实现停止功能
图13:实现视频停止功能
(5)实现音量控制功能
图14:实现音量增大功能 图15:实现音量增大功能
(6)实现进度条时间显示功能
图16:实现进度条时间显示功能
五、总结及心得体会
Linux广告机界面的环境搭建是基于Qt工程,我们需要安装好软件以及对这个工程进行初步认识。对于广告机的设计,我们需要设计好界面,添加相应的部件来实现需要的功能才能达到我们需要的效果。在项目开发中,我们设计了一个多功能的广告机,该广告机可以实现海报的切换、视频的播放功能,以及快进快退,上一首下一首,天气时间的获取等基本广告机功能。此外,我们还实现了客户端与服务器之间的通信功能,使的广告机可以实时显示时间日期以及播放天气信息。对于广告机的海报我们需选定好主题,再上网查找相应图片,最后把图片加入工程即可实现相应功能。