首页 > 解决方案 > PyQT5 QSound 声音之间的延迟

问题描述

我正在用 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)

标签: pythonpyqt5piano

解决方案


您应该能够简单地使用如下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)

希望这可以帮助 :)


推荐阅读