diff options
author | Liang Qi <liang.qi@qt.io> | 2016-08-13 13:53:51 +0200 |
---|---|---|
committer | Liang Qi <liang.qi@qt.io> | 2016-08-13 13:53:59 +0200 |
commit | 820205e604a5f281238c23464638fdff72b969d1 (patch) | |
tree | c6f6723449d1b11e8d540752e50e3c2e11613f33 /src/plugins/winrt | |
parent | 03d55888942feac26054978ce4e7c6edd4611eda (diff) | |
parent | c30eeb5b7486caa31cdb0f9279de2f78fed89c54 (diff) | |
download | qtmultimedia-820205e604a5f281238c23464638fdff72b969d1.tar.gz |
Merge remote-tracking branch 'origin/5.6' into 5.7
Change-Id: I3204cdf695f4b47730a88a7c41fc7a6de967b161
Diffstat (limited to 'src/plugins/winrt')
-rw-r--r-- | src/plugins/winrt/qwinrtmediaplayercontrol.cpp | 32 |
1 files changed, 19 insertions, 13 deletions
diff --git a/src/plugins/winrt/qwinrtmediaplayercontrol.cpp b/src/plugins/winrt/qwinrtmediaplayercontrol.cpp index 68cf60db2..5720488f2 100644 --- a/src/plugins/winrt/qwinrtmediaplayercontrol.cpp +++ b/src/plugins/winrt/qwinrtmediaplayercontrol.cpp @@ -266,18 +266,19 @@ public: break; } - if (d->state != newState) { - d->state = newState; - emit q->stateChanged(d->state); - } - if (d->videoRenderer) d->videoRenderer->setActive(d->state == QMediaPlayer::PlayingState); - if (d->mediaStatus != newStatus) { - d->mediaStatus = newStatus; + const QMediaPlayer::MediaStatus oldMediaStatus = d->mediaStatus; + const QMediaPlayer::State oldState = d->state; + d->mediaStatus = newStatus; + d->state = newState; + + if (d->mediaStatus != oldMediaStatus) emit q->mediaStatusChanged(d->mediaStatus); - } + + if (d->state != oldState) + emit q->stateChanged(d->state); return S_OK; } @@ -859,17 +860,22 @@ void QWinRTMediaPlayerControl::stop() { Q_D(QWinRTMediaPlayerControl); - if (d->state != QMediaPlayer::StoppedState) { - d->state = QMediaPlayer::StoppedState; - emit stateChanged(d->state); - } + const QMediaPlayer::MediaStatus oldMediaStatus = d->mediaStatus; + const QMediaPlayer::State oldState = d->state; + + d->state = QMediaPlayer::StoppedState; if (d->mediaStatus == QMediaPlayer::BufferedMedia || d->mediaStatus == QMediaPlayer::BufferingMedia) { d->mediaStatus = QMediaPlayer::LoadedMedia; - emit mediaStatusChanged(d->mediaStatus); } + if (d->mediaStatus != oldMediaStatus) + emit mediaStatusChanged(d->mediaStatus); + + if (d->state != oldState) + emit stateChanged(d->state); + if (d->media.isNull() && d->stream.isNull()) return; |