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;

}

相关推荐
牛奔10 小时前
Go 如何避免频繁抢占?
开发语言·后端·golang
寻星探路14 小时前
【深度长文】万字攻克网络原理:从 HTTP 报文解构到 HTTPS 终极加密逻辑
java·开发语言·网络·python·http·ai·https
lly20240616 小时前
Bootstrap 警告框
开发语言
2601_9491465316 小时前
C语言语音通知接口接入教程:如何使用C语言直接调用语音预警API
c语言·开发语言
曹牧16 小时前
Spring Boot:如何测试Java Controller中的POST请求?
java·开发语言
KYGALYX16 小时前
服务异步通信
开发语言·后端·微服务·ruby
zmzb010317 小时前
C++课后习题训练记录Day98
开发语言·c++
猫头虎17 小时前
如何排查并解决项目启动时报错Error encountered while processing: java.io.IOException: closed 的问题
java·开发语言·jvm·spring boot·python·开源·maven
YUJIANYUE18 小时前
PHP纹路验证码
开发语言·php
仟濹18 小时前
【Java基础】多态 | 打卡day2
java·开发语言