diff options
author | Qt Forward Merge Bot <qt_forward_merge_bot@qt-project.org> | 2020-02-15 03:03:59 +0100 |
---|---|---|
committer | Qt Forward Merge Bot <qt_forward_merge_bot@qt-project.org> | 2020-02-15 03:03:59 +0100 |
commit | b2606eed8fa46c3f81bb9b03ca10409a00ed134f (patch) | |
tree | c8697ca341f567ee677671f0e68fc7efc6512079 | |
parent | d509b9d8375c1ca7dba6d236a06b6c49011a981c (diff) | |
parent | cbdf4561f5cdb6ee95583f14a3769c3124228586 (diff) |
Merge remote-tracking branch 'origin/5.14' into 5.15
Change-Id: Ia0c325dc50b9a5a1cdd205609ba688ad9874f297
-rw-r--r-- | src/multimedia/playback/qmediaplayer.cpp | 9 | ||||
-rw-r--r-- | src/plugins/avfoundation/mediaplayer/avfmediaplayersession.mm | 5 |
2 files changed, 11 insertions, 3 deletions
diff --git a/src/multimedia/playback/qmediaplayer.cpp b/src/multimedia/playback/qmediaplayer.cpp index 153794801..2f1aa45c3 100644 --- a/src/multimedia/playback/qmediaplayer.cpp +++ b/src/multimedia/playback/qmediaplayer.cpp @@ -367,6 +367,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 @@ -385,7 +392,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 diff --git a/src/plugins/avfoundation/mediaplayer/avfmediaplayersession.mm b/src/plugins/avfoundation/mediaplayer/avfmediaplayersession.mm index 3e3736183..1f13fc9bb 100644 --- a/src/plugins/avfoundation/mediaplayer/avfmediaplayersession.mm +++ b/src/plugins/avfoundation/mediaplayer/avfmediaplayersession.mm @@ -686,7 +686,7 @@ void AVFMediaPlayerSession::setPosition(qint64 pos) CMTime newTime = [playerItem currentTime]; newTime.value = (pos / 1000.0f) * newTime.timescale; - [playerItem seekToTime:newTime]; + [playerItem seekToTime:newTime toleranceBefore:kCMTimeZero toleranceAfter:kCMTimeZero completionHandler:nil]; Q_EMIT positionChanged(pos); @@ -928,7 +928,8 @@ void AVFMediaPlayerSession::processBufferStateChange(int bufferStatus) } else if (status == QMediaPlayer::StalledMedia) { status = QMediaPlayer::BufferedMedia; // Resume playback. - [[static_cast<AVFMediaPlayerSessionObserver*>(m_observer) player] setRate:m_rate]; + if (m_state == QMediaPlayer::PlayingState) + [[static_cast<AVFMediaPlayerSessionObserver*>(m_observer) player] setRate:m_rate]; } if (m_mediaStatus != status) |