summaryrefslogtreecommitdiffstats
path: root/src/plugins/android/src/mediaplayer/qandroidmediaplayercontrol.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/android/src/mediaplayer/qandroidmediaplayercontrol.cpp')
-rw-r--r--src/plugins/android/src/mediaplayer/qandroidmediaplayercontrol.cpp15
1 files changed, 12 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);