0

我正在用 PyQt5 制作一个数码钢琴软件,它的功能之一是能够自动弹奏音符。我已经在一个列表下注册了几个音符,并且正在尝试使用 QSound 来播放它们,但是当我这样做时,它们会同时播放。我如何能够在声音之间添加延迟?谢谢您的帮助

def playSheetMusic(self, Piano):
        sheetmusic = ["A5", "G4", "C4", "C4", "C4"]
        note1 = sheetmusic[0]
        file1 = "pianokeys/" + note1 +".wav"
        note2 = sheetmusic[1]
        file2 = "pianokeys/" + note2 +".wav"
        QSound.play(file1)
        QSound.play(file2)
4

1 回答 1

0

您应该能够简单地使用如下qWait()功能添加延迟:

from PyQt4 import QtTest

def playSheetMusic(self, Piano):
        sheetmusic = ["A5", "G4", "C4", "C4", "C4"]
        note1 = sheetmusic[0]
        file1 = "pianokeys/" + note1 +".wav"
        note2 = sheetmusic[1]
        file2 = "pianokeys/" + note2 +".wav"
        QSound.play(file1)
        QtTest.QTest.qWait(1000)        # put however many milliseconds delay you want
        QSound.play(file2)

希望这可以帮助 :)

于 2020-06-20T06:27:20.207 回答