Pyqt6 - setSourcedevice () funktioniert nicht mit einem QBuffer

Post a reply

Smilies
:) :( :oops: :chelo: :roll: :wink: :muza: :sorry: :angel: :read: *x) :clever:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: Pyqt6 - setSourcedevice () funktioniert nicht mit einem QBuffer

by Anonymous » 01 Feb 2025, 07:41

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.

Top