Qt仿音乐播放器:媒体类

一、铺垫

我暂时只会音频系列的操作,我只能演示音频部分;但是QMediaPlayer是一个可以播放视频、音频的类;请同学们细读官方文档;

二、头文件

#include<QMediaPlayer> 头文件

#include<QMediaPlaylist>

三、演示

我会先演示套路;再补充细节:

复制代码
QMediaPlayer* player=new QMediaPlayer(this); //创建对象,并挂在对象树上
QMediaPlaylist* playList=new QMediaPlaylist(this);//创建对象,并挂在对象树上

//2.设置默认播放模式
playList->setPlaybackMode(QMediaPlaylist::Random);//设置播放回放模式为随机循环

//3.将播放列表设置到播放媒体对象中;
player->setPlaylist(playList);

细节:

QMediaPlayer:我愿意称之为是一个播放者

QMediaPlaylist:称之为播放列表

当将播放列表设置到播放者里时,播放者就是按照播放列表来依次播放内容

四、常用函数

请原谅我使用英文,允许我解释

1.软件是外国的,我翻译再牛逼,也是半吊子,带有我自己的个人色彩;

2.我行告诉诸位同学;都是从官方文档中找的,请诸君共勉;

QMediaPlayer* player=new QMediaPlayer(this); //创建播放者,并挂在对象树上

player->setVolume(20); //设置默认音量大小-默认设置成20%

player->state() //获取播放者的状态;播放、暂停或停止状态

player->setMuted(bool); //设置是否静音

play->play() //Start or resume playing the current source.音乐播放

player->pause() //Pause playing the current source.音乐停止

player->stop() //Stop playing, and reset the play position to the beginning

//停止播放,并将播放位置重置为刚开始的位置;
QMediaPlaylist* playList=new QMediaPlaylist(this);//创建对象,并挂在对象树上

那么如何往播放列表里填充数据呢?此类中有一个函数时addMedia();向播放列表中添加媒体源(所谓的添加媒体源;并不是真正的把二进制数据加载到内存;而是给了一个地址)

复制代码
playList->addMedia(music.getMusicUrl());

他有两个重载类型,一个是单纯的类,一个是填一个容器类;我们单讲第一个;

bool QMediaPlaylist::addMedia(const QMediaContent &content)

bool QMediaPlaylist::addMedia(const QList<QMediaContent> &items)

QMediaContent的构造函数

QMediaContent(const QUrl &url)

这就与我们前面所讲的QUrl连在一起;使用QUrl来构建QMediaContent,再构建QMediaPlaylist播放列表;

相关推荐
云雀衔光18 分钟前
Java Spring AI MCP:在 Spring 里把 AI 接上你的业务系统
java·开发语言·人工智能·后端·测试工具·spring
重生之小比特21 分钟前
【Java SE】数据类型与变量
java·开发语言·python
Yeniden24 分钟前
Java 后端从零到企业级:第1篇 Java 基础语法——变量、数据类型与运算符
java·开发语言·apache
luj_176835 分钟前
罚球线右移破防新策略
c语言·开发语言·网络·经验分享·算法
legendary_1631 小时前
PD‑SINK芯片在无协议后端负载中的工程应用
c语言·开发语言·人工智能·智能手机·计算机外设
Nuanyt1 小时前
JVM常见核心知识梳理02 类加载 字节码技术 双亲委派 Java内存模型 JMM 并发底层 volatile synchronized 常见排障与调优工具
java·开发语言·jvm
liliangcsdn1 小时前
IC计算-前向/远期收益计算和代码示例
开发语言·python·pandas
小溪学编程1 小时前
Java ListIterator 接口详解:双向遍历与列表修改的利器
java·开发语言·windows
影视飓风TIM1 小时前
C++11 新特性:Lambda表达式、std::function与std::bind
开发语言·c++
sbjdhjd1 小时前
在 8 字符、字母数字过滤与 PHP 版本差异下复盘临时文件命令执行链 | (8字符绕过)
android·java·开发语言·安全·web安全·数据挖掘·php