QMediaPlaylist 类使用教程

news/2024/12/23 1:51:45/

文章目录

  • 1、简介
  • 2 、公共类型
  • 3、属性
  • 4、functions
    • 4.1、访问属性相关 function
    • 4.2、公共槽
    • 4.3、Signal
    • 4.4、其他方法

QT 官方文档参考地址:https://doc.qt.io/qt-5/qmediaplaylist.html

1、简介

moudleclass说明
PyQt5.QtCore
其他模块使用的核心非图形类
QUrl用于处理url的方便接口
PyQt5.QtMultimedia
音频,视频,广播和相机功能类
QMediaPlayer从源播放媒体
QMediaPlaylist要播放的媒体列表

2 、公共类型

1、 enum PlaybackMode
描述播放列表中项目的播放顺序

  • CurrentItemOnce当前曲目只播放一次
  • CurrentItemInLoop当前曲目循环播放
  • Sequential从当前曲目开始顺序播放至列表结尾,然后结束播放
  • Loop列表循环播放
    • 设置此播放顺序后,无法通过调用 next()previous() 切歌,可以调用 setCurrentIndex 来实现切歌
  • Random随机播放

3、属性

1、currentIndex(类型:int

当前播放曲目在播放列表中的位置
未播放时调用返回 -1

2、playbackMode(类型:QMediaPlaylist::PlaybackMode

此属性定义播放列表中项目的播放顺序

4、functions

4.1、访问属性相关 function

1、int currentIndex() const

获取当前播放曲目在播放列表中的位置

2、void setCurrentIndex(int playlistPosition)

播放指定位置的曲目

3、QMediaPlaylist::PlaybackMode playbackMode() const

获取播放列表中项目的播放顺序

4、void setPlaybackMode(QMediaPlaylist::PlaybackMode mode)

设置播放列表中项目的播放顺序

4.2、公共槽

1、void next()

进入播放列表中的下一个媒体内容

2、void previous()

返回到播放列表中先前的媒体内容

4.3、Signal

1、void currentIndexChanged(int position)

当前播放的曲目位置改变
自动切歌或者调用 setCurrentIndex() 后会发射此信号
单曲循环时重新从头开始播放不会发射此信号

2、void playbackModeChanged(QMediaPlaylist::PlaybackMode mode)

播放列表中项目的播放顺序改变
调用 setPlaybackMode() 后会发射此信号

3、void mediaInserted(int start, int end)

该信号在媒体被插入播放列表后发出
调用 insertMedia() 后会发射此信号

4、void mediaRemoved(int start, int end)

该信号在媒体从播放列表中删除后发出
调用 removeMedia() 后会发射此信号

5、void mediaChanged(int start, int end)

当播放列表中的媒体在开始位置和结束位置(包括开始位置和结束位置)之间发生更改后

4.4、其他方法

1、bool addMedia(const QMediaContent &content)

将媒体内容追加到播放列表
如果操作成功返回true,否则返回false。

from PyQt5.QtCore import QUrl
from PyQt5.QtMultimedia import QMediaContent
from PyQt5.QtMultimedia import QMediaPlaylistplayerListHander = QMediaPlaylist()  # 实例化播放列表句柄
mp3filepath = "./这世界那么多人.mp3"
songs_url = QUrl.fromLocalFile( mp3filepath )
content = QMediaContent(songs_url)
playerListHander.addMedia(content) 

2、bool addMedia(const QList &items)

向播放列表追加多个媒体内容项
如果操作成功返回true,否则返回false。

3、bool clear()

从播放列表中删除所有项目
如果操作成功返回true,否则返回false。

4、bool insertMedia(int pos, const QMediaContent &content)

将媒体内容插入到播放列表的位置
如果操作成功返回true,否则返回false。

5、bool insertMedia(int pos, const QList &items)

在播放列表的位置插入多个媒体内容项
如果操作成功返回true,否则返回false。

6、bool isEmpty() const

如果播放列表不包含任何项目,则返回true,否则返回false

7、int mediaCount() const

回播放列表中的曲目数

8、bool isReadOnly() const

如果播放列表可以修改,则返回true,否则返回false

9、bool moveMedia(int from, int to)

将项目从一个位置移动到另一个位置
如果操作成功返回true,否则返回false。

10、int nextIndex(int steps = 1) const

返回下一曲目的索引
返回值取决于播放列表的大小、当前位置和播放模式。

11、int previousIndex(int steps = 1) const

返回上一曲目的索引
返回值取决于播放列表的大小、当前位置和播放模式。

12、bool removeMedia(int pos)

从播放列表中移除位置为pos的项目
如果操作成功返回true,否则返回false。

13、bool removeMedia(int start, int end)

从开始到结束删除播放列表中的项目
如果操作成功返回true,否则返回false。


http://www.ppmy.cn/news/1170170.html

相关文章

Python高级技巧

十三、Python高级技巧 1. 闭包 解决全局变量问题: 代码在命名空间上(变量定义)不够干净、整洁全局变量又被修改的风险 定义: ​ 在函数嵌套的前提下,内部函数使用了外部函数的变量,并且外部函数返回了内部…

Milk-V Duo移植rt-thread smart

前言 (1)PLCT实验室实习生长期招聘:招聘信息链接 (2)首先,我们拿到Milk-V Duo板子之后,我个人建议先移植大核Linux。因为那个资料相对多一点,也简单很多,现象也容易观察到…

react 学习 —— 15、使用 ref 引用值

什么时候使用 ref? 当你希望组件“记住”某些信息,但又不想让这些信息 触发新的渲染 时,你可以使用 ref 。以下是使用的几个场景: 存储 timeout ID存储和操作 DOM 元素存储不需要被用来计算 JSX 的其他对象 怎么使用 ref&#…

面试知识储备--打包工具篇(webpack和vite)

1.vite常用配置 常用配置 1.preprocessorOptions 传递给 CSS 预处理器的配置选项 2.PostCSS 也是用来处理 CSS 的,只不过它更像是一个工具箱,可以添加各种插件来处理 CSS 3.resolve.extensions 导入时想要省略的扩展名列表。默认值为 [‘.mjs’, ‘.js’…

【SA8295P 源码分析】109 - QNX 如何实现显示图片到 Screen 显示屏上

【SA8295P 源码分析】109 - QNX 如何实现显示图片到 Screen 显示屏上 系列文章汇总见:《【SA8295P 源码分析】00 - 系列文章链接汇总》 本文链接:《【SA8295P 源码分析】109 - QNX 如何实现显示图片到 Screen 显示屏上》 时隔这么久,终于把项目的网络部分全部搞好了,剩下的…

Ragnar Locker勒索软件开发者在法国被逮捕

导语:在一次跨国行动中,执法机构逮捕了与Ragnar Locker勒索软件团伙有关的一名恶意软件开发者,并查封了该团伙的暗网网站。Ragnar Locker勒索软件团伙自2020年以来在全球范围内对168家国际公司进行了攻击。此次行动是法国、捷克、德国、意大利…

AIGC生成式人工智能的概念和孵化关键里程碑

生成式人工智能AIGC,与PGC(Professional Generated Content,专业生成内容)、UGC(User Generated Content,用户生成内容)相对应,指利用人工智能(Artificial Intelligence&…

多版本并发控制MVCC

什么是MVCC MVCC (Multiversion Concurrency Control),多版本并发控制。顾名思义,MVCC 是通过数据行的多个版本管理来实现数据库的并发控制。这项技术使得在InnoDB的事务隔离级别下执行一致性读操作有了保证。换言之,…