#include <QtCore/qcoreapplication.h>
#include <QtCore/qdir.h>
#include <QtCore/qfileinfo.h>
-#include <QtCore/qtimer.h>
#include <QtCore/quuid.h>
#include <mm/renderer.h>
#include <bps/mmrenderer.h>
m_stopEventsToIgnore(0),
m_bufferStatus(0)
{
+ m_loadingTimer.setSingleShot(true);
+ m_loadingTimer.setInterval(0);
+ connect(&m_loadingTimer, SIGNAL(timeout()), this, SLOT(continueLoadMedia()));
QCoreApplication::eventDispatcher()->installNativeEventFilter(this);
openConnection();
}
QFile::remove(m_tempMediaFileName);
m_tempMediaFileName.clear();
}
+ m_loadingTimer.stop();
}
QMediaPlayer::State BbMediaPlayerControl::state() const
// canvas is ready.
// The mmrenderer doesn't allow to attach video outputs after playing has started, otherwise
// this would be unnecessary.
- setMediaStatus(QMediaPlayer::LoadingMedia);
- QTimer::singleShot(0, this, SLOT(continueLoadMedia()));
+ if (!m_media.isNull()) {
+ setMediaStatus(QMediaPlayer::LoadingMedia);
+ m_loadingTimer.start(); // singleshot timer to continueLoadMedia()
+ } else {
+ continueLoadMedia(); // still needed, as it will update the media status and clear metadata
+ }
}
void BbMediaPlayerControl::continueLoadMedia()
#include <qmediaplayercontrol.h>
#include <QtCore/qabstractnativeeventfilter.h>
#include <QtCore/qpointer.h>
+#include <QtCore/qtimer.h>
struct bps_event_t;
typedef struct mmr_connection mmr_connection_t;
int m_stopEventsToIgnore;
int m_bufferStatus;
QString m_tempMediaFileName;
+ QTimer m_loadingTimer;
};
QT_END_NAMESPACE