将 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 自动更新的进度条。
您可能希望禁用进度条中的文本,因为百分比对于歌曲播放没有多大用处。不幸的是,似乎没有一种简单的方法可以在进度条中打印时间。
我想知道如何在 PyQt5 上获得 QMediaPlayer 模块的 progress-bar/seeker...所以在我的音乐播放器应用程序上我可以有一个歌曲的进度条。提前致谢
你的问题有点宽泛,总的来说这是你应该做的:
- 创建一个 QProgressBar
- 创建您的 QMediaPlayer
- 监听 QMediaPlayer 模块的 currentMediaChanged() 信号;在您的处理程序中获取当前媒体的持续时间,除以 1000 以获得以秒为单位的长度,将其设置为 QProgressBar 的最大值;重置进度条。
- 监听 QMediaPlayer 的 positionChanged() 信号;在处理程序中获取当前位置;再次除以 1000 并使用 setValue 在 QProgressBar 中设置值。
这应该会给你一个由 QMediaPlayer 自动更新的进度条。
您可能希望禁用进度条中的文本,因为百分比对于歌曲播放没有多大用处。不幸的是,似乎没有一种简单的方法可以在进度条中打印时间。