rquivo de som @play no PyQt
Desenvolvi um software no PyQt que reproduz o som. Estou usando a Phonon Library para reproduzir o som, mas ele apresenta algum atraso. Então, como reproduzir um arquivo de som no PyQt sem usar a Phonon Library.
É assim que estou usando o Phonon:
def Playnote(self,note_id):
global note
note = note_id
self.PlayThread = PlayThread()
self.PlayThread.start()
class PlayThread(QtCore.QThread):
def __init__(self):
QtCore.QThread.__init__(self)
def __del__(self):
self.wait()
def run(self):
global note
self.m_media = Phonon.MediaObject(self)
audioOutput = Phonon.AudioOutput(Phonon.MusicCategory, self)
Phonon.createPath(self.m_media, audioOutput)
self.m_media.setCurrentSource(Phonon.MediaSource(Phonon.MediaSource(note)))
self.m_media.play()
Agora, o atraso é reduzido. Mas o problema é que estou pressionando duas ou mais teclas em um curto espaço de tempo, que é a nova nota acima e interrompe a nota anterior. Preciso tocar a nota anterior até que ela termine.
class PlayThread(QtCore.QThread):
def __init__(self):
QtCore.QThread.__init__(self)
self.m_media = Phonon.MediaObject(self)
self.audioOutput = Phonon.AudioOutput(Phonon.MusicCategory, self)
Phonon.createPath(self.m_media, self.audioOutput)
def __del__(self):
self.wait()
def play(self, note):
self.m_media.setCurrentSource(Phonon.MediaSource(Phonon.MediaSource(note)))
self.m_media.play()
def run(self):pass