当前位置: 首页 > news >正文

Pyqt6 中 QMediaPlayer 音视频播放

QMediaPlayer 是 PyQt6 中用于音视频播放的类,提供了对多种媒体格式的支持,能够播放本地文件、流媒体、音频以及视频等。它是 QtMultimedia 模块的一部分,主要通过与 QMediaPlayer 结合使用的控件,如 QVideoWidget 来显示视频内容。

主要功能:

1. 加载和播放媒体:

  • setSource():设置要播放的媒体源,可以是本地文件、URL 或媒体流。
  • play():开始播放音频或视频。
  • pause():暂停播放。
  • stop():停止播放。

2. 控制音量:

  • setVolume():设置音量(0到100之间)。

3. 控制播放进度:

  • setPosition():设置播放的当前位置(以毫秒为单位)。
  • position():获取当前播放位置。

4. 获取媒体信息:

  • duration():获取媒体的总时长(以毫秒为单位)。
  • media():获取当前播放的媒体内容。

5. 信号:

  • mediaStatusChanged: 当媒体播放状态发生变化时发出信号。
  • positionChanged: 当播放进度改变时发出信号。
  • durationChanged: 当媒体的总时长发生变化时发出信号。
  • error: 当播放出错时触发。

6. 视频输出:

  • setVideoOutput(): 设置一个视频控件(如 QVideoWidget)来显示播放的视频内容。

示例代码:

from PyQt6.QtWidgets import QApplication, QPushButton, QVBoxLayout, QWidget
from PyQt6.QtMultimedia import QMediaPlayer, QAudioOutput
from PyQt6.QtCore import QUrl

app = QApplication([])

# 界面
window = QWidget()
layout = QVBoxLayout()

# 播放器
# 播放器
player = QMediaPlayer()
audio_output = QAudioOutput()
player.setAudioOutput(audio_output)
player.setSource(QUrl.fromLocalFile("./res/music/提示音1.mp3"))  # 指定本地音频文件
player.play()
player.setLoops(5)  # 循环播放

# 播放按钮
button = QPushButton("停止")
button.clicked.connect(player.stop)

layout.addWidget(button)
window.setLayout(layout)
window.show()
app.exec()

关键方法总结:

  • setSource(): 设置媒体源。
  • play()pause()stop(): 控制播放。
  • setVolume(): 调整音量。
  • setPosition(): 设置播放进度。
  • setVideoOutput(): 设置视频输出窗口。

相关文章:

  • DeepSeek免费部署到WPS或Office
  • 鸿蒙面试题
  • Kotlin 扩展函数与内联函数
  • python视频爬虫
  • 2025 年 2 月 TIOBE 指数
  • day09_实时类标签/指标
  • 使用Cocos Creator制作“打砖块”小游戏:从零开始的详细教程
  • Aitken 逐次线性插值
  • SQLite 约束
  • 算法学习笔记之贪心算法
  • ASP.NET Core的贫血模型与充血模型
  • PortSwigger——WebSockets vulnerabilities
  • 稀土紫外屏蔽剂:科技护航,守护您的健康与美丽
  • Docker拉不下来镜像问题解决法案
  • SpringMVC请求执行流程源码解析
  • 和鲸科技上线 DeepSeek 系列模型服务,助力数智企业 AI 业务创新!
  • [开源]MaxKb+Ollama 构建RAG私有化知识库
  • 【Linux】操作系统的理解/进程/环境变量/虚拟地址空间
  • android的第一个app项目(java版)
  • 微信小程序网络请求封装
  • 上海比常年平均时间提前12天入夏,明天最高气温可达33℃
  • 外企聊营商|武田制药:知识产权保护助创新药研发
  • 上海高院与上海妇联签协议,建立反家暴常态化联动协作机制
  • 外交部:国际社会广泛理解和支持中方不同意台参加世卫大会的决定
  • 腾讯一季度营收增长13%,马化腾:战略性的AI投入将带来长期回报
  • 风雨天涯梦——《袁保龄公牍》发微