将 QProgressBar 或 QSlider 连接到 QMediaPlayer 以获取歌曲进度

Connect QProgressBar or QSlider to QMediaPlayer for song progress

我想知道如何在 PyQt5 上获得 QMediaPlayer 模块的 progress-bar/seeker...所以在我的音乐播放器应用程序上我可以有一个歌曲的进度条。提前致谢

你的问题有点宽泛,总的来说这是你应该做的:

  • 创建一个 QProgressBar
  • 创建您的 QMediaPlayer
  • 监听 QMediaPlayer 模块的 currentMediaChanged() 信号;在您的处理程序中获取当前媒体的持续时间,除以 1000 以获得以秒为单位的长度,将其设置为 QProgressBar 的最大值;重置进度条。
  • 监听 QMediaPlayer 的 positionChanged() 信号;在处理程序中获取当前位置;再次除以 1000 并使用 setValue 在 QProgressBar 中设置值。

这应该会给你一个由 QMediaPlayer 自动更新的进度条。

您可能希望禁用进度条中的文本,因为百分比对于歌曲播放没有多大用处。不幸的是,似乎没有一种简单的方法可以在进度条中打印时间。