diff options
Diffstat (limited to 'src/multimedia/playback/qmediaplayer.cpp')
-rw-r--r-- | src/multimedia/playback/qmediaplayer.cpp | 9 |
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 |