QMediaPlaylist 类使用教程

文章目录

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

1、简介

moudle class 说明
PyQt5.QtCore 其他模块使用的核心非图形类 QUrl 用于处理url的方便接口
PyQt5.QtMultimedia 音频,视频,广播和相机功能类 QMediaPlayer 从源播放媒体
PyQt5.QtMultimedia 音频,视频,广播和相机功能类 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。

python 复制代码
from PyQt5.QtCore import QUrl
from PyQt5.QtMultimedia import QMediaContent
from PyQt5.QtMultimedia import QMediaPlaylist

playerListHander = 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。

相关推荐
大学生毕业题目18 小时前
毕业项目推荐:91-基于yolov8/yolov5/yolo11的井盖破损检测识别(Python+卷积神经网络)
python·yolo·目标检测·cnn·pyqt·井盖破损
大学生毕业题目1 天前
毕业项目推荐:92-基于yolov8/yolov5/yolo11的棉花病虫害检测识别系统(Python+卷积神经网络)
python·yolo·目标检测·cnn·pyqt·棉花病虫害
深蓝海拓1 天前
PySide6从0开始学习的笔记(二十一) 使用loadUi直接加载.ui文件
笔记·python·qt·学习·ui·pyqt
深蓝海拓3 天前
PySide6从0开始学习的笔记(二十) qdarkstyle的深入应用
笔记·python·qt·学习·pyqt
我可以将你更新哟3 天前
【PyQT-2】布局管理
pyqt
懷淰メ4 天前
python3GUI--基于深度学习的人脸识别管理系统(详细图文介绍)
人工智能·深度学习·人脸识别·pyqt·人脸·识别系统·人脸管理
我可以将你更新哟4 天前
【PyQT-4】QListWidget列表控件、QComboBox下拉列表控件、QTableWidget表格控件
开发语言·python·pyqt
我可以将你更新哟5 天前
【pyqt-1】把Qt Designer集成到pyCharm,PyQT(窗口、添加空控件、事件处理)
qt·pycharm·pyqt
懷淰メ6 天前
python3GUI--基于YOLOv8深度学习的车牌识别系统(详细图文介绍)
深度学习·opencv·yolo·pyqt·图像识别·车牌识别·pyqt5
大学生毕业题目7 天前
毕业项目推荐:90-基于yolov8/yolov5/yolo11的工程车辆检测识别系统(Python+卷积神经网络)
人工智能·python·yolo·目标检测·cnn·pyqt·工程车辆检测