summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/multimedia/audio/qsoundeffect_qaudio_p.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/multimedia/audio/qsoundeffect_qaudio_p.cpp b/src/multimedia/audio/qsoundeffect_qaudio_p.cpp
index 388f84d91..3f315fa28 100644
--- a/src/multimedia/audio/qsoundeffect_qaudio_p.cpp
+++ b/src/multimedia/audio/qsoundeffect_qaudio_p.cpp
@@ -132,6 +132,13 @@ void QSoundEffectPrivate::setSource(const QUrl &url)
d->m_sample = nullptr;
}
+ if (d->m_audioOutput) {
+ disconnect(d->m_audioOutput, &QAudioOutput::stateChanged, d, &PrivateSoundSource::stateChanged);
+ d->m_audioOutput->stop();
+ d->m_audioOutput->deleteLater();
+ d->m_audioOutput = nullptr;
+ }
+
setStatus(QSoundEffect::Loading);
d->m_sample = sampleCache()->requestSample(url);
connect(d->m_sample, &QSample::error, d, &PrivateSoundSource::decoderError);