欢迎访问宙启技术站
智能推送

使用PyQt5中的singleShot()函数实现定时播放音乐

发布时间:2023-12-16 08:36:46

在PyQt5中,可以使用QTimer的singleShot()函数来实现定时播放音乐。singleShot()函数是将一个定时器事件安排在指定的时间间隔之后触发,只触发一次。

下面是一个使用PyQt5中的singleShot()函数实现定时播放音乐的例子:

import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton
from PyQt5.QtCore import QTimer, Qt
from PyQt5.QtMultimedia import QMediaPlayer, QMediaContent


class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        self.resize(300, 200)
        
        self.button = QPushButton("Play Music", self)
        self.button.setGeometry(100, 80, 100, 30)
        self.button.clicked.connect(self.play_music)

        self.media_player = QMediaPlayer()

    def play_music(self):
        # 创建一个定时器
        timer = QTimer(self)
        # 设置定时器触发时间为5秒
        timer.singleShot(5000, self.start_music)

    def start_music(self):
        # 加载音乐文件
        self.media_player.setMedia(QMediaContent("music.mp3"))
        # 播放音乐
        self.media_player.setVolume(50)
        self.media_player.play()


if __name__ == '__main__':
    app = QApplication(sys.argv)

    mainWindow = MainWindow()
    mainWindow.show()

    sys.exit(app.exec_())

在这个例子中,我们创建了一个窗口,包含一个播放音乐的按钮。当用户点击按钮时,调用play_music()函数。play_music()函数首先创建一个定时器,设置触发时间为5秒钟后,然后调用定时器的singleShot()函数,设定时间到达后调用start_music()函数。start_music()函数加载音乐文件,设置音量,并开始播放音乐。由于定时器只触发一次,所以音乐只会播放一次。

这个例子展示了如何使用PyQt5中的singleShot()函数来实现定时播放音乐。你可以根据自己的需求修改定时器的触发时间和要播放的音乐文件。