diff options
Diffstat (limited to 'src/plugins/android/src')
3 files changed, 13 insertions, 4 deletions
diff --git a/src/plugins/android/src/mediaplayer/qandroidmediaplayercontrol.cpp b/src/plugins/android/src/mediaplayer/qandroidmediaplayercontrol.cpp index 4bfcce5bc..13a8cdbbb 100644 --- a/src/plugins/android/src/mediaplayer/qandroidmediaplayercontrol.cpp +++ b/src/plugins/android/src/mediaplayer/qandroidmediaplayercontrol.cpp @@ -384,7 +384,7 @@ void QAndroidMediaPlayerControl::setMedia(const QMediaContent &mediaContent, if ((mMediaPlayer->display() == 0) && mVideoOutput) mMediaPlayer->setDisplay(mVideoOutput->surfaceTexture()); - mMediaPlayer->setDataSource(mediaContent.canonicalUrl().toString(QUrl::FullyEncoded)); + mMediaPlayer->setDataSource(mediaContent.canonicalRequest()); mMediaPlayer->prepareAsync(); } diff --git a/src/plugins/android/src/wrappers/jni/androidmediaplayer.cpp b/src/plugins/android/src/wrappers/jni/androidmediaplayer.cpp index 79685e16f..f899481f0 100644 --- a/src/plugins/android/src/wrappers/jni/androidmediaplayer.cpp +++ b/src/plugins/android/src/wrappers/jni/androidmediaplayer.cpp @@ -166,9 +166,17 @@ void AndroidMediaPlayer::setMuted(bool mute) mMediaPlayer.callMethod<void>("mute", "(Z)V", jboolean(mute)); } -void AndroidMediaPlayer::setDataSource(const QString &path) +void AndroidMediaPlayer::setDataSource(const QNetworkRequest &request) { - QJNIObjectPrivate string = QJNIObjectPrivate::fromString(path); + QJNIObjectPrivate string = QJNIObjectPrivate::fromString(request.url().toString(QUrl::FullyEncoded)); + + mMediaPlayer.callMethod<void>("initHeaders", "()V"); + for (auto &header : request.rawHeaderList()) { + auto value = request.rawHeader(header); + mMediaPlayer.callMethod<void>("setHeader", "(Ljava/lang/String;Ljava/lang/String;)V", + QJNIObjectPrivate::fromString(header).object(), QJNIObjectPrivate::fromString(value).object()); + } + mMediaPlayer.callMethod<void>("setDataSource", "(Ljava/lang/String;)V", string.object()); } diff --git a/src/plugins/android/src/wrappers/jni/androidmediaplayer.h b/src/plugins/android/src/wrappers/jni/androidmediaplayer.h index 14cbf49bc..37c7456f7 100644 --- a/src/plugins/android/src/wrappers/jni/androidmediaplayer.h +++ b/src/plugins/android/src/wrappers/jni/androidmediaplayer.h @@ -41,6 +41,7 @@ #define ANDROIDMEDIAPLAYER_H #include <QObject> +#include <QNetworkRequest> #include <QtCore/private/qjni_p.h> #include <QAudio> @@ -112,7 +113,7 @@ public: void stop(); void seekTo(qint32 msec); void setMuted(bool mute); - void setDataSource(const QString &path); + void setDataSource(const QNetworkRequest &request); void prepareAsync(); void setVolume(int volume); bool setPlaybackRate(qreal rate); |