diff options
Diffstat (limited to 'src/multimedia/audio/qsoundeffect_qaudio_p.cpp')
-rw-r--r-- | src/multimedia/audio/qsoundeffect_qaudio_p.cpp | 7 |
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); |