summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Mira <samuel.mira@qt.io>2023-04-27 13:51:52 +0300
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2023-05-02 07:23:59 +0000
commitd9f938fd819f72f91d22d6916b60aac48d26c51a (patch)
tree9af6ff8542a7518696d6fb181df5c5f54102abf7
parentea62bd143d9a3084fcc3900c73889d8b734624c1 (diff)
downloadqtmultimedia-d9f938fd819f72f91d22d6916b60aac48d26c51a.tar.gz
Android: Use QFile for content url
Following Scoped Storage feature implementation, the java APIs to obtain a filedescriptor from a content scheme were removed. QFile now supports content url, so it was changed to use that. The QFile still needs to be used as a stream. Fixes: QTBUG-112973 Change-Id: I0b023be6adab81a591ce0e8a81128e4ca00ba213 Reviewed-by: Artem Dyomin <artem.dyomin@qt.io> Reviewed-by: Lars Knoll <lars@knoll.priv.no> (cherry picked from commit 9e9cca08ef53692b54a5f02566af7efe439673c9) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rw-r--r--src/multimedia/playback/qmediaplayer.cpp19
1 files changed, 5 insertions, 14 deletions
diff --git a/src/multimedia/playback/qmediaplayer.cpp b/src/multimedia/playback/qmediaplayer.cpp
index 600a56c42..e17063652 100644
--- a/src/multimedia/playback/qmediaplayer.cpp
+++ b/src/multimedia/playback/qmediaplayer.cpp
@@ -189,25 +189,16 @@ void QMediaPlayerPrivate::setMedia(const QUrl &media, QIODevice *stream)
qWarning("Qt was built with -no-feature-temporaryfile: playback from resource file is not supported!");
#endif
}
-#if defined(Q_OS_ANDROID)
- } else if (media.scheme() == QLatin1String("content") && !stream) {
- // content scheme should happen only on android
- const int fd = QJniObject::callStaticMethod<jint>(
- "org/qtproject/qt/android/QtNative", "openFdForContentUrl",
- "(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;)I",
- QNativeInterface::QAndroidApplication::context(),
- QJniObject::fromString(media.toString()).object(),
- QJniObject::fromString(QLatin1String("r")).object());
-
- file.reset(new QFile(QLatin1Char(':') + media.path()));
- file->open(fd, QFile::ReadOnly, QFile::FileHandleFlag::AutoCloseHandle);
- control->setMedia(media, file.get());
-#endif
} else {
qrcMedia = QUrl();
QUrl url = media;
if (url.scheme().isEmpty() || url.scheme() == QLatin1String("file"))
url = QUrl::fromUserInput(media.path(), QDir::currentPath(), QUrl::AssumeLocalFile);
+ if (url.scheme() == QLatin1String("content") && !stream) {
+ file.reset(new QFile(media.url()));
+ stream = file.get();
+ }
+
control->setMedia(url, stream);
}