pyqt5 qmediaplayer 显示播放时间
时间: 2023-09-04 07:16:15 浏览: 331
你可以使用QMediaPlayer的positionChanged()信号和durationChanged()信号来获取当前播放时间和总时间,然后将其转换为可读的格式并在UI中显示。
以下是一个简单的示例代码:
```python
from PyQt5.QtCore import QUrl, QTime
from PyQt5.QtMultimedia import QMediaPlayer, QMediaContent
from PyQt5.QtWidgets import QApplication, QLabel, QMainWindow
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.player = QMediaPlayer(self)
self.player.positionChanged.connect(self.update_position)
self.player.durationChanged.connect(self.update_duration)
self.label = QLabel(self)
self.setCentralWidget(self.label)
url = QUrl.fromLocalFile("/path/to/your/media/file.mp3")
content = QMediaContent(url)
self.player.setMedia(content)
def update_position(self, position):
position_time = QTime(0, (position / 60000) % 60, (position / 1000) % 60)
self.label.setText(f"Position: {position_time.toString('mm:ss')} / {self.duration}")
def update_duration(self, duration):
self.duration = QTime(0, (duration / 60000) % 60, (duration / 1000) % 60).toString('mm:ss')
if __name__ == '__main__':
app = QApplication([])
window = MainWindow()
window.show()
window.player.play()
app.exec_()
```
在这个例子中,我们创建了一个QMainWindow,并在其中心放置了一个QLabel来显示当前的播放时间。QMediaPlayer被用来播放媒体文件,并连接到positionChanged()和durationChanged()信号,以便在播放时更新UI。我们还创建了两个QTime变量来存储当前播放时间和总时间。在update_position()方法中,我们将当前播放时间转换为可读的格式,并将其与总时间一起显示在标签中。在update_duration()方法中,我们将总时间转换为可读的格式。
阅读全文