首页| 论坛| 消息

标题:Qt开源作品6-通用视频控件
作者:liudianwu
日期:2020-05-11 08:53
内容:

## 一、前言
在之前做的视频监控系统中,根据不同的用户需要,做了好多种视频监控内核,有ffmpeg内核的,有vlc内核的,有mpv内核的,还有海康sdk内核的,为了做成通用的功能,不同内核很方便的切换,比如pro直接改一个DEFINE的变量名,所以需要将各种内核的使用方法做成一样的接口,这样看起来就很整齐,所以后面特意提炼了一个通用的视频控件,该控件没有具体的视频播放控制功能,需要根据不同的内核去调用具体的方法实现,后面还需要增加大华sdk或者其他第三方厂家的协议的时候,直接套用这个通用视频控件即可。
通用视频控件功能:
1. 可设置边框大小
2. 可设置边框颜色
3. 可设置两路OSD标签
4. 可设置是否绘制OSD标签
5. 可设置标签文本或图片
6. 可设置OSD位置 左上角+左下角+右上角+右下角
7. 可设置OSD风格 文本+日期+时间+日期时间+图片
8. 自定义半透明悬浮窗体,一排按钮
9. 悬浮按钮可自定义设置,包括背景颜色+按下颜色
10. 发送信号通知单击了哪个悬浮按钮
11. 能够识别拖进来的文件,通知url
12. 提供open close pause等接口
## 二、代码思路
```c++
//设置悬浮条
//顶部工具栏,默认隐藏,鼠标移入显示移除隐藏
flowPanel = new QWidget(this);
flowPanel->setObjectName("flowPanel");
flowPanel->setVisible(false);
//用布局顶住,左侧弹簧
QHBoxLayout *layout = new QHBoxLayout;
layout->setSpacing(2);
layout->setMargin(0);
layout->addStretch();
flowPanel->setLayout(layout);
//按钮集合名称,如果需要新增按钮则在这里增加即可
QList btns;
btns width() - (borderWidth * 2), height);
}
void VideoWidget::enterEvent(QEvent *)
{
&n ..

回复 发表
主题 版块