Android: fix some MediaPlayer signals not being emitted on first load.
authorYoann Lopes <yoann.lopes@theqtcompany.com>
Thu, 26 Feb 2015 15:16:49 +0000 (16:16 +0100)
committerYoann Lopes <yoann.lopes@theqtcompany.com>
Wed, 4 Mar 2015 16:36:04 +0000 (16:36 +0000)
When loading the first media while the video output was not yet ready,
mediaChanged() and mediaStatusChanged() signals were not emitted.
That's because in that particular situation, the backend believed
the delayed loading was a reload of the same media.

Change-Id: If5dfbf383ea2dac065fc26b70640ebfb2c52862d
Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
src/plugins/android/src/mediaplayer/qandroidmediaplayercontrol.cpp

index a8f427f..3128a89 100644 (file)
@@ -307,7 +307,7 @@ void QAndroidMediaPlayerControl::setMedia(const QMediaContent &mediaContent,
 {
     StateChangeNotifier notifier(this);
 
-    mReloadingMedia = (mMediaContent == mediaContent);
+    mReloadingMedia = (mMediaContent == mediaContent) && !mPendingSetMedia;
 
     if (!mReloadingMedia) {
         mMediaContent = mediaContent;
@@ -712,8 +712,8 @@ void QAndroidMediaPlayerControl::resetBufferingProgress()
 void QAndroidMediaPlayerControl::flushPendingStates()
 {
     if (mPendingSetMedia) {
-        mPendingSetMedia = false;
         setMedia(mMediaContent, 0);
+        mPendingSetMedia = false;
         return;
     }