diff options
Diffstat (limited to 'src/multimedia/playback')
-rw-r--r-- | src/multimedia/playback/qmedianetworkplaylistprovider.cpp | 3 | ||||
-rw-r--r-- | src/multimedia/playback/qmediaplayer.cpp | 12 | ||||
-rw-r--r-- | src/multimedia/playback/qmediaplaylistnavigator.cpp | 5 |
3 files changed, 16 insertions, 4 deletions
diff --git a/src/multimedia/playback/qmedianetworkplaylistprovider.cpp b/src/multimedia/playback/qmedianetworkplaylistprovider.cpp index a4ad97251..3f24d0f55 100644 --- a/src/multimedia/playback/qmedianetworkplaylistprovider.cpp +++ b/src/multimedia/playback/qmedianetworkplaylistprovider.cpp @@ -42,6 +42,7 @@ #include "qmediacontent.h" #include "qmediaobject_p.h" #include "qplaylistfileparser_p.h" +#include "qrandom.h" QT_BEGIN_NAMESPACE @@ -266,7 +267,7 @@ void QMediaNetworkPlaylistProvider::shuffle() QList<QMediaContent> resources; while (!d->resources.isEmpty()) { - resources.append(d->resources.takeAt(qrand() % d->resources.size())); + resources.append(d->resources.takeAt(QRandomGenerator::global()->bounded(d->resources.size()))); } d->resources = resources; diff --git a/src/multimedia/playback/qmediaplayer.cpp b/src/multimedia/playback/qmediaplayer.cpp index 16fdec8ea..a3484a6ff 100644 --- a/src/multimedia/playback/qmediaplayer.cpp +++ b/src/multimedia/playback/qmediaplayer.cpp @@ -718,7 +718,17 @@ void QMediaPlayer::setNetworkConfigurations(const QList<QNetworkConfiguration> & QMediaPlayer::State QMediaPlayer::state() const { - return d_func()->state; + Q_D(const QMediaPlayer); + + // In case if EndOfMedia status is already received + // but state is not. + if (d->control != 0 + && d->status == QMediaPlayer::EndOfMedia + && d->state != d->control->state()) { + return d->control->state(); + } + + return d->state; } QMediaPlayer::MediaStatus QMediaPlayer::mediaStatus() const diff --git a/src/multimedia/playback/qmediaplaylistnavigator.cpp b/src/multimedia/playback/qmediaplaylistnavigator.cpp index 192fd463c..0966c9396 100644 --- a/src/multimedia/playback/qmediaplaylistnavigator.cpp +++ b/src/multimedia/playback/qmediaplaylistnavigator.cpp @@ -43,6 +43,7 @@ #include "qmediaobject_p.h" #include <QtCore/qdebug.h> +#include <QtCore/qrandom.h> QT_BEGIN_NAMESPACE @@ -124,7 +125,7 @@ int QMediaPlaylistNavigatorPrivate::nextItemPos(int steps) const randomModePositions.append(-1); int res = randomModePositions[randomPositionsOffset+steps]; if (res<0 || res >= playlist->mediaCount()) { - res = qrand() % playlist->mediaCount(); + res = QRandomGenerator::global()->bounded(playlist->mediaCount()); randomModePositions[randomPositionsOffset+steps] = res; } @@ -177,7 +178,7 @@ int QMediaPlaylistNavigatorPrivate::previousItemPos(int steps) const int res = randomModePositions[randomPositionsOffset-steps]; if (res<0 || res >= playlist->mediaCount()) { - res = qrand() % playlist->mediaCount(); + res = QRandomGenerator::global()->bounded(playlist->mediaCount()); randomModePositions[randomPositionsOffset-steps] = res; } |