Qt视频播放---基于Windows

一、回去摄像头信息

在这使用列表来存储摄像头信息
QList类:提供列表的模板类
例子:
QList integerList; //存储整数的列表
QList dateList; //存储QDate的列表

  QList<QCameraInfo>  camearInfo = QCameraInfo::availableCameras();

二、显示摄像头信息

定义一个下拉列表combox,来存储摄像头信息。

这是foreath的方法:foreach(variable, container)
用于实现Qtforeath循环,变量参数是变量名或变量定义。container参数是Qt容器,其值类型对应于变量的类型。

//方法一
foreach(QCameraInfo cam,camearInfo)
{
     qDebug() << "设备名字:" << cam.deviceName();//打印设备名字
     qDebug() << "设备描述:" << cam.description();//打印设备描述
     ui->comboBox->addItem(cam.deviceName());//在combox上显示获取到的摄像头名字
}

//方法二:也可以使用for循环来遍历
 for(int i=0; i<camearInfo.size(); i++)
    {
       qDebug() << "设备名字:" << camearInfo.at(i).deviceName();
       qDebug() << "设备描述:" << camearInfo.at(i).description();
       ui->comboBox->addItem(camearInfo.at(i).deviceName());
    }

三、开启摄像头

3.1、新建摄像头对象

 camera = new QCamera(ui->comboBox->currentText().toUtf8());//选用当前窗口中的设备

3.2、准备一个窗口显示摄像头

QVideoWidget类:用来提供一个小部件,用来显示媒体对象产生的视频对象

 QVideoWidget * video =new QVideoWidget(ui->widget);//关联窗口

3.3、设置窗口大小

video->resize(ui->widget->size());

3.4、绑定关联窗口

  camera->setViewfinder(video);

3.5、显示窗口

  video->show();

3.6、开启摄像头

   camera->start();

四、关闭摄像头

camera->stop();

五、结果展示

我定义了俩个按钮,用来开启、关闭摄像头,一个comBox下拉框,用来显示获取到的摄像头设备名字。
如果你的电脑USB端口同时插入多个摄像头设备,在comBox下拉框可以检测到的话,这些摄像头可以随机切换。当然啦,在切换摄像头的时候,需要关闭上一个摄像头然后再开启下一个摄像头,如果不关闭上一个而直接开启下一个的话,会发生资源抢占问题,从而导致程序崩溃而卡死或者退出。因为几个摄像头的优先级是相同的,抢占资源时,优先级不够,但是强制的抢占资源,则会发生意想不到的结果。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weixin_44585751

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值