Als selbstlernendes Projekt kann ich eine App entwickelt, in der ich den Inhalt von kurzen Audiodateien mithilfe eines Spektrogramms und eines Media-Players analysieren kann. Die Dateien werden mit Librosa geladen und haben unterschiedliche Formate (hauptsächlich .mp3 , .wav , .ogg ). Für jede Datei extrahiere ich nur 10 Sekunden Audio, die ich dann in Bytes transformiere und als WAV -Datei/Objekt schreibe, wie hier gezeigt. Dies erfolgt aus einer externen Vorverarbeitungsfunktion. . Ich habe mich auch diesen Beitrag angesehen, um herauszufinden, was schief gelaufen ist, aber ich kann dies nicht zum Laufen bringen. So sieht der Code aus: < /p>
Code: Select all
def load_spectro(self, item):
... formatting file path with item ...
spectro, audio = prepare_audiofile(this_file)
... some spectrogram display functions ...
# Prepare the audio clip
buf = QBuffer()
buf.setData(audio.getvalue())
buf.open(QIODevice.OpenModeFlag.ReadOnly)
audioOutput = QAudioOutput()
self.player.setAudioOutput(audioOutput)
self.player.setSourceDevice(buf) -> crashes here
< /code>
Ich entwickle mich mit VSCODE 1.96.4 unter Windows 11 und pyqt6 == 6.8.0. Bevor jemand vorschlägt, diese_file
als Qurl in setSourcedevice () zu verwenden, muss man wissen/daran denken, dass das Format .ogg in Windows Media Player nicht offiziell unterstützt wird. Das ist der Hauptgrund, warum ich den Pufferweg durchgehen muss.