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;

}

相关推荐
Thera7773 小时前
C++ 高性能时间轮定时器:从单例设计到 Linux timerfd 深度优化
linux·开发语言·c++
炘爚4 小时前
C语言(文件操作)
c语言·开发语言
阿蒙Amon4 小时前
C#常用类库-详解SerialPort
开发语言·c#
凸头5 小时前
CompletableFuture 与 Future 对比与实战示例
java·开发语言
wuqingshun3141595 小时前
线程安全需要保证几个基本特征
java·开发语言·jvm
Moksha2625 小时前
5G、VoNR基本概念
开发语言·5g·php
jzlhll1235 小时前
kotlin Flow first() last()总结
开发语言·前端·kotlin
W.D.小糊涂5 小时前
gpu服务器安装windows+ubuntu24.04双系统
c语言·开发语言·数据库
用头发抵命5 小时前
Vue 3 中优雅地集成 Video.js 播放器:从组件封装到功能定制
开发语言·javascript·ecmascript
似水明俊德6 小时前
02-C#.Net-反射-学习笔记
开发语言·笔记·学习·c#·.net