summaryrefslogtreecommitdiffstats
path: root/src/multimedia/playback/qmediaplayer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/multimedia/playback/qmediaplayer.cpp')
-rw-r--r--src/multimedia/playback/qmediaplayer.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/multimedia/playback/qmediaplayer.cpp b/src/multimedia/playback/qmediaplayer.cpp
index 48db0335e..cd27d3b1d 100644
--- a/src/multimedia/playback/qmediaplayer.cpp
+++ b/src/multimedia/playback/qmediaplayer.cpp
@@ -366,6 +366,13 @@ void QMediaPlayerPrivate::setMedia(const QMediaContent &media, QIODevice *stream
control->setMedia(media, file.data());
} else {
#if QT_CONFIG(temporaryfile)
+#if defined(Q_OS_ANDROID)
+ QString tempFileName = QDir::tempPath() + media.request().url().path();
+ QDir().mkpath(QFileInfo(tempFileName).path());
+ QTemporaryFile *tempFile = QTemporaryFile::createNativeFile(*file);
+ if (!tempFile->rename(tempFileName))
+ qWarning() << "Could not rename temporary file to:" << tempFileName;
+#else
QTemporaryFile *tempFile = new QTemporaryFile;
// Preserve original file extension, some backends might not load the file if it doesn't
@@ -384,7 +391,7 @@ void QMediaPlayerPrivate::setMedia(const QMediaContent &media, QIODevice *stream
tempFile->write(buffer, len);
}
tempFile->close();
-
+#endif
file.reset(tempFile);
control->setMedia(QMediaContent(QUrl::fromLocalFile(file->fileName())), nullptr);
#else