diff options
author | Christian Strømme <christian.stromme@digia.com> | 2013-11-28 15:07:21 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-12-09 18:09:20 +0100 |
commit | 966d4bc86f02de83b621ef972c418352e84f6d09 (patch) | |
tree | 0b0061b11afd95a302b26b68302a39c6bae46f9b /src/plugins/android/src/mediaplayer | |
parent | 9ceb1c083e4f6911ace1af3c9dfa6b4dd9036586 (diff) | |
download | qtmultimedia-966d4bc86f02de83b621ef972c418352e84f6d09.tar.gz |
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.cpp | 15 | ||||
-rw-r--r-- | src/plugins/android/src/mediaplayer/qandroidmediaplayercontrol.h | 2 |
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); |