QT进阶日记004

多媒体

一、项目加

QT +=...... multimedia multimediaWidgets

二、创建一个QWidget项目

三、布局一个界面

添加一个显示视频的容器Widget容器到界面来。playWindow

添加播放,暂停,结束,快近,快退,等按钮QPushButton

btnPlay,btnPause,btnEnd,btnFront,btnBack等命名

添加一个进度条QSlider当播放进度条,添加一个当音量条。

sliPlay,sliSound

添加一个标签QLabel,显示总时间长/当前位置时间,laVol

这样的话,界面元素基本上就够了。

四、写代码

1、引用

#include<QMediaPlayer>//播放器类

#include<QMediaDevices>//多媒体设备

#include<QAudioOutput>//音频输出设备

#include<QvideoWidget>//视频输出窗口

在H文件里定义一个

QMediaPlayer * m_play;

在cpp里的初始化

在构造函数里就行了

MyPlayer :: MyPlayer(QWidget * parent):QWidget(parent),ui(new Ui :: Widget),m_play(new QMediaPlayer(this))

{

ui->setupUi(this);

//设置播放来源

m_play->setSource(QUrl("文件/地/址/file.mp3"));//有mp3,mp4

连接看看错误状态等信号

connect(m_player,&QMediaPlayer :: errorOccureed,this,=(QMediaPlayer :: Error error,const QString $str){

qDebug()<<str;

});

//关联信号,得到时长变化

connect(m_player,&QMediaPlayer :: durationChanged,this,\[\](qint64 duration){

当改变时长时,触发这个处理过程,该时间是毫秒单位。

ui->laVol->setText(QString ("%1:%2:%3").arg(duration/1000/60/60,2,10,QChar('0')).arg(duration/1000/60,2,10,QChar('0')).arg(duration/1000%60,2,10,QChar('0'));

});

//设定音频输出设备

m_play->setAudiaOutput(new QAudioOutput(this));

//视频输出设备

QVideoWidget wg=new QVideoWidget(this);

包装一个层

QHBoxlayout * lay=new QHBoxLayout(ui->playWindow);

lay->addWidget(wg);

m_play->setVideoOutput(wg);

m_play->play();

}

MyPlayer :: ~MyPlayer()

{

delete ui;

}

相关推荐
Quz11 分钟前
QML 信号与槽:直接绑定与跨文件通信
qt·编程语言·设计
GIS阵地42 分钟前
QgsSingleBandPseudoColorRenderer 完整详解(QGIS 3.40.13 C++)
开发语言·前端·c++·qt·qgis
yaoxin5211231 小时前
470. Java 反射 - Member 接口与 AccessFlag
java·开发语言·python
groundhappy1 小时前
idalib安装和codex ida-mcp配置
linux·开发语言·python
小钻风33662 小时前
Spring Boot 文件上传详解:深入理解 MultipartFile 的使用与原理
java·开发语言
qq_452396233 小时前
第二篇:《Go 开发环境搭建:SDK、IDE、Module 与 Hello World》
开发语言·ide·golang
天青色等烟雨..4 小时前
全流程ArcGISPro空间分析、三维建模、可视化及Python融合应用技术
开发语言·python
丰锋ff4 小时前
1.2 Qt常用基础类型
开发语言·qt
冰暮流星4 小时前
javascript之String方法介绍
开发语言·javascript·ecmascript
小二·5 小时前
车载数字座舱实战:用魔珐星云打造下一代智能驾乘助手(附 Android/Kotlin 完整代码)
开发语言·kotlin