参考资料:<<QtCreator快速入门>>第3版 霍亚飞编著 第13.2.1节 播放视频文件
编译环境:Qt Creator 4.8.2 Based on Qt 5.12.2 (MSVC 2015, 32 bit)
Microsoft Visual Studio 2017
第一步:新建Qt Widget应用,名称为myvideowidget(随意),基类选择QWidget
第二步:在myvideowidget.pro中修改代码如下
QT += core gui multimedia multimediawidgets
第三步:在widget.h文件中添加类的前置声明和私有对象
class QMediaPlayer;//类前置声明
class QVideoWidget;//类前置声明
private:
QMediaPlayer *player;//私有对象
QVideoWidget *videoWidget;//私有对象
第四步:双击widget.ui文件,进入“设计”模式
将widget界面的宽度属性设置为600,高度设置为400,然后往界面上拖入4个标签label和4个水平滑块Horizontal Slider,
一个标签对应一个滑块,分为4组,将4个标签显示文本分别设置为亮度、对比度、色相和饱和度,而对应的滑块的objectName分别设置为brightnessSlider、contrastSlider、hueSlider、saturationSlider。最后将四个滑块的minimum属性设置为-100,maximum属性设置为100。
第五步:在widget.cpp文件添加如下代码
#include<QMediaPlayer>
#include<QVideoWidget>
//在构造函数中添加
//播放视频
player=new QMediaPlayer(this);
videoWidget=new QVideoWidget(this);
videoWidget->resize(600,300);
player->setVideoOutput(videoWidget);
player->setMedia(QUrl("http://ivi.bupt.edu.cn/hls/cctv1.m3u8"));
player->play();
//控制亮度
ui->brightnessSlider->setValue(videoWidget->brightness());
connect(ui->brightnessSlider,&QSlider::sliderMoved,videoWidget,
&QVideoWidget::setBrightness);
connect(videoWidget,&QVideoWidget::brightnessChanged,ui->brightnessSlider,
&QSlider::setValue);
//控制对比度
ui->contrastSlider->setValue(videoWidget->contrast());
connect(ui->contrastSlider,&QSlider::sliderMoved,videoWidget,&QVideoWidget::setContrast);
connect(videoWidget,&QVideoWidget::contrastChanged,ui->contrastSlider,
&QSlider::setValue);
//控制色相
ui->hueSlider->setValue(videoWidget->hue());
connect(ui->hueSlider,&QSlider::sliderMoved,videoWidget,&QVideoWidget::setHue);
connect(videoWidget,&QVideoWidget::hueChanged,ui->hueSlider,&QSlider::setValue);
//控制饱和度
ui->saturationSlider->setValue(videoWidget->saturation());
connect(ui->saturationSlider,&QSlider::sliderMoved,videoWidget,
&QVideoWidget::setSaturation);
connect(videoWidget,&QVideoWidget::saturationChanged,ui->saturationSlider,
&QSlider::setValue);
第六步:下载安装k-Lite,用于解码m3u8格式的文件
安装Basic版就行,安装时各个选项都默认设置。
第七步:运行程序