标题:Qt音视频开发47-通用视频控件
作者:liudianwu
日期:2020-11-18 18:17
内容:
## 一、前言
自从视频监控系统的内核不断增加,从最初的vlc到ffmpeg然后到mpv,后面还陆续增加了海康sdk等,每次增加一个内核,整个视频监控系统就有三五个代码文件需要修改,而且大部分是重复的代码,通过define来区分不同的内核,所以重新整理了一个视频类,里面就define处理好了,提供了个公共接口,在需要的地方直接实例化一个类就行,而不需要在不同的地方实例化不同的类,大大减轻了后期的工作量,也复用了很多代码。
通用视频控件基本功能:
1. 调用setUrl函数设置要播放的视频文件或者流地址。
2. 调用open方法打开视频、close方法关闭视频。
3. 调用pause方法暂停播放、next方法继续播放。
4. 调用getVolume函数获取音量、setVolume函数设置音量。
5. 调用getMute函数获取静音状态、setMute函数设置静音。
6. 调用getLength函数获取文件长度。
7. 调用getPosition函数获取当前播放位置、setPosition设置播放位置。
8. 播放成功发出receivePlayStart信号。
9. 播放失败发出receivePlayError信号。
10. 播放结束发出receivePlayFinsh信号。
11. 执行截图动作后,触发snapImage信号。
12. 解析出一张图片后,触发receiveImage信号。
13. 播放文件发出fileLengthReceive总时长信号。
14. 音量调节或者静音状态变动后发出fileVolumeReceive信号。
15. 播放位置变动后发出filePositionReceive信号。
16. 接收到拖曳文件发出fileDrag信号。
17. 悬浮条工具栏点击按钮后发出btnClicked信号。
18. 设置是否保存文件、保存间隔、保存文件夹。
19. 设置是否拉伸填充图片、是否深拷贝图片。
20. 设置是否断线重连、超时时间。
21. 设置悬浮条可见、背景颜色、按下颜色等。
22. 设置边框粗细和颜色、背景文字和图片。
23. 设置两路OSD的字号、文本、颜色、位置、格式等。
24. 设置是否采用回调、硬解码名称、流通信协议等。
## 二、功能特点
1. 支持多画面切换,全屏切换等,包括1+4+6+8+9+13+16+25+36+64画面切换。
2. 支持alt+enter全屏,esc退出全屏。
3. 自定义信息框+错误框+询问框+右下角提示框(包含多种格式)。
4. 17套皮肤样式随意更换,所有样式全部统一,包括菜单等。
5. 云台仪表盘鼠标移上去高亮,八个方位精准识别。
6. 底部画面工具栏(画面分割切换+截图声音等设置)移上去高亮。
7. 可在配置文件更改左上角logo+中文软件名称+英文软件名称。
8. 封装了百度地图,视图切换,运动轨迹,设备点位,鼠标按下获取经纬度等。
9. 支持图片地 ..