summaryrefslogtreecommitdiffstats
path: root/src/plugins/android/src/mediaplayer
diff options
context:
space:
mode:
authorChristian Strømme <christian.stromme@digia.com>2013-11-28 15:07:21 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-12-09 18:09:20 +0100
commit966d4bc86f02de83b621ef972c418352e84f6d09 (patch)
tree0b0061b11afd95a302b26b68302a39c6bae46f9b /src/plugins/android/src/mediaplayer
parent9ceb1c083e4f6911ace1af3c9dfa6b4dd9036586 (diff)
Android add support for qrc in mediaplayer.
[ChangeLog][QtMultimedia][Android] Enable mediaplayer to read files from the Qt Resource system. Task-number: QTBUG-31422 Change-Id: Iaaefb35566b623b78b9f8aa22daf6ac92fb35e67 Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
Diffstat (limited to 'src/plugins/android/src/mediaplayer')
-rw-r--r--src/plugins/android/src/mediaplayer/qandroidmediaplayercontrol.cpp15
-rw-r--r--src/plugins/android/src/mediaplayer/qandroidmediaplayercontrol.h2
2 files changed, 14 insertions, 3 deletions
diff --git a/src/plugins/android/src/mediaplayer/qandroidmediaplayercontrol.cpp b/src/plugins/android/src/mediaplayer/qandroidmediaplayercontrol.cpp
index 54c04e5c9..ce73263d3 100644
--- a/src/plugins/android/src/mediaplayer/qandroidmediaplayercontrol.cpp
+++ b/src/plugins/android/src/mediaplayer/qandroidmediaplayercontrol.cpp
@@ -218,10 +218,19 @@ void QAndroidMediaPlayerControl::setMedia(const QMediaContent &mediaContent,
return;
}
- const QString uri = mediaContent.canonicalUrl().toString();
+ const QUrl url = mediaContent.canonicalUrl();
+ QString mediaPath;
+ if (url.scheme() == QLatin1String("qrc")) {
+ const QString path = url.toString().mid(3);
+ mTempFile.reset(QTemporaryFile::createNativeFile(path));
+ if (!mTempFile.isNull())
+ mediaPath = QLatin1String("file://") + mTempFile->fileName();
+ } else {
+ mediaPath = url.toString();
+ }
- if (!uri.isEmpty())
- mMediaPlayer->setDataSource(uri);
+ if (!mediaPath.isEmpty())
+ mMediaPlayer->setDataSource(mediaPath);
else
setMediaStatus(QMediaPlayer::NoMedia);
diff --git a/src/plugins/android/src/mediaplayer/qandroidmediaplayercontrol.h b/src/plugins/android/src/mediaplayer/qandroidmediaplayercontrol.h
index ef1d325e5..fadac3c19 100644
--- a/src/plugins/android/src/mediaplayer/qandroidmediaplayercontrol.h
+++ b/src/plugins/android/src/mediaplayer/qandroidmediaplayercontrol.h
@@ -45,6 +45,7 @@
#include <qglobal.h>
#include <QMediaPlayerControl>
#include <qsize.h>
+#include <QtCore/QTemporaryFile>
QT_BEGIN_NAMESPACE
@@ -114,6 +115,7 @@ private:
QMediaPlayer::State mPendingState;
qint64 mPendingPosition;
bool mPendingSetMedia;
+ QScopedPointer<QTemporaryFile> mTempFile;
void setState(QMediaPlayer::State state);
void setMediaStatus(QMediaPlayer::MediaStatus status);