diff options
-rw-r--r-- | src/imports/multimedia/qdeclarativeaudio.cpp | 15 | ||||
-rw-r--r-- | src/imports/multimedia/qdeclarativeaudio_p.h | 1 |
2 files changed, 9 insertions, 7 deletions
diff --git a/src/imports/multimedia/qdeclarativeaudio.cpp b/src/imports/multimedia/qdeclarativeaudio.cpp index 1da92c308..bce0b7e2a 100644 --- a/src/imports/multimedia/qdeclarativeaudio.cpp +++ b/src/imports/multimedia/qdeclarativeaudio.cpp @@ -183,8 +183,9 @@ void QDeclarativeAudio::setSource(const QUrl &url) return; m_source = url; + m_content = m_source.isEmpty() ? QMediaContent() : m_source; m_loaded = false; - if (m_complete && (m_autoLoad || url.isEmpty() || m_autoPlay)) { + if (m_complete && (m_autoLoad || m_content.isNull() || m_autoPlay)) { if (m_error != QMediaPlayer::ServiceMissingError && m_error != QMediaPlayer::NoError) { m_error = QMediaPlayer::NoError; m_errorString = QString(); @@ -192,7 +193,7 @@ void QDeclarativeAudio::setSource(const QUrl &url) emit errorChanged(); } - m_player->setMedia(m_source, 0); + m_player->setMedia(m_content, 0); m_loaded = true; } else @@ -245,7 +246,7 @@ void QDeclarativeAudio::setPlaybackState(QMediaPlayer::State playbackState) switch (playbackState){ case (QMediaPlayer::PlayingState): if (!m_loaded) { - m_player->setMedia(m_source, 0); + m_player->setMedia(m_content, 0); m_player->setPosition(m_position); m_loaded = true; } @@ -254,7 +255,7 @@ void QDeclarativeAudio::setPlaybackState(QMediaPlayer::State playbackState) case (QMediaPlayer::PausedState): if (!m_loaded) { - m_player->setMedia(m_source, 0); + m_player->setMedia(m_content, 0); m_player->setPosition(m_position); m_loaded = true; } @@ -681,8 +682,8 @@ void QDeclarativeAudio::componentComplete() if (!qFuzzyCompare(m_playbackRate, qreal(1.0))) m_player->setPlaybackRate(m_playbackRate); - if (!m_source.isEmpty() && (m_autoLoad || m_autoPlay)) { - m_player->setMedia(m_source, 0); + if (!m_content.isNull() && (m_autoLoad || m_autoPlay)) { + m_player->setMedia(m_content, 0); m_loaded = true; if (m_position > 0) m_player->setPosition(m_position); @@ -691,7 +692,7 @@ void QDeclarativeAudio::componentComplete() m_complete = true; if (m_autoPlay) { - if (m_source.isEmpty()) { + if (m_content.isNull()) { m_player->stop(); } else { m_player->play(); diff --git a/src/imports/multimedia/qdeclarativeaudio_p.h b/src/imports/multimedia/qdeclarativeaudio_p.h index b8a75c659..1c67bc3ad 100644 --- a/src/imports/multimedia/qdeclarativeaudio_p.h +++ b/src/imports/multimedia/qdeclarativeaudio_p.h @@ -257,6 +257,7 @@ private: QMediaPlayer::Error m_error; QString m_errorString; QUrl m_source; + QMediaContent m_content; QScopedPointer<QDeclarativeMediaMetaData> m_metaData; |