From 719216f8ea4ce2ea00f30cfa41e1acd57ef91766 Mon Sep 17 00:00:00 2001 From: Athameral Date: Tue, 4 Feb 2025 16:12:16 +0800 Subject: [PATCH 1/2] fix: QBuffer only new no delete. --- src/audio/multimediaaudioplayer.cc | 15 +++++---------- src/audio/multimediaaudioplayer.hh | 2 +- 2 files changed, 6 insertions(+), 11 deletions(-) diff --git a/src/audio/multimediaaudioplayer.cc b/src/audio/multimediaaudioplayer.cc index aecc330bd..9384edbc5 100644 --- a/src/audio/multimediaaudioplayer.cc +++ b/src/audio/multimediaaudioplayer.cc @@ -26,12 +26,11 @@ void MultimediaAudioPlayer::audioOutputChange() QString MultimediaAudioPlayer::play( const char * data, int size ) { stop(); - audioBuffer = new QBuffer(); - audioBuffer->setData( data, size ); - if ( !audioBuffer->open( QIODevice::ReadOnly ) ) { + audioBuffer.setData( data, size ); + if ( !audioBuffer.open( QIODevice::ReadOnly ) ) { return tr( "Couldn't open audio buffer for reading." ); } - player.setSourceDevice( audioBuffer ); + player.setSourceDevice( &audioBuffer ); audioOutput.setDevice( QMediaDevices::defaultAudioOutput() ); player.setAudioOutput( &audioOutput ); @@ -43,12 +42,8 @@ QString MultimediaAudioPlayer::play( const char * data, int size ) void MultimediaAudioPlayer::stop() { player.stop(); - - if ( audioBuffer ) { - audioBuffer->close(); - audioBuffer->setData( QByteArray() ); // Free memory. - audioBuffer.clear(); - } + audioBuffer.close(); + audioBuffer.setData( QByteArray() ); // Free memory. } void MultimediaAudioPlayer::onMediaPlayerError() diff --git a/src/audio/multimediaaudioplayer.hh b/src/audio/multimediaaudioplayer.hh index 829f5aa75..0906ecee6 100644 --- a/src/audio/multimediaaudioplayer.hh +++ b/src/audio/multimediaaudioplayer.hh @@ -28,7 +28,7 @@ private slots: private: - QPointer< QBuffer > audioBuffer; + QBuffer audioBuffer; QMediaPlayer player; ///< Depends on audioBuffer. QAudioOutput audioOutput; QMediaDevices mediaDevices; From 4cec7fd5a6151cb71a9c5a2ea56a84cf3271c6df Mon Sep 17 00:00:00 2001 From: Athameral Date: Tue, 4 Feb 2025 16:20:15 +0800 Subject: [PATCH 2/2] opt: Remove in headers. --- src/audio/multimediaaudioplayer.hh | 1 - 1 file changed, 1 deletion(-) diff --git a/src/audio/multimediaaudioplayer.hh b/src/audio/multimediaaudioplayer.hh index 0906ecee6..e404d6a34 100644 --- a/src/audio/multimediaaudioplayer.hh +++ b/src/audio/multimediaaudioplayer.hh @@ -10,7 +10,6 @@ #include #include #include - #include class MultimediaAudioPlayer: public AudioPlayerInterface {