diff -Nuar a/qtmultimedia/src/plugins/avfoundation/mediaplayer/avfmediaplayersession.mm b/qtmultimedia/src/plugins/avfoundation/mediaplayer/avfmediaplayersession.mm --- a/qtmultimedia/src/plugins/avfoundation/mediaplayer/avfmediaplayersession.mm 2020-04-27 10:24:10.000000000 +0300 +++ b/qtmultimedia/src/plugins/avfoundation/mediaplayer/avfmediaplayersession.mm 2020-05-30 22:30:05.000000000 +0300 @@ -536,16 +536,16 @@ return m_mediaStream; } -static void setURL(void *observer, const QString &url, const QString &mimeType = QString()) +static void setURL(void *observer, const QByteArray &url, const QString &mimeType = QString()) { - NSString *urlString = [NSString stringWithUTF8String:url.toUtf8().constData()]; + NSString *urlString = [NSString stringWithUTF8String:url.constData()]; NSURL *nsurl = [NSURL URLWithString:urlString]; [static_cast(observer) setURL:nsurl mimeType:[NSString stringWithUTF8String:mimeType.toLatin1().constData()]]; } -static void setStreamURL(void *observer, const QString &url) +static void setStreamURL(void *observer, const QByteArray &url) { - setURL(observer, QLatin1String("iodevice://") + url, QFileInfo(url).suffix()); + setURL(observer, QByteArray("iodevice://") + url, QFileInfo(url).suffix()); } void AVFMediaPlayerSession::setMedia(const QMediaContent &content, QIODevice *stream) @@ -588,11 +588,11 @@ // If there is a data, try to load it, // otherwise wait for readyRead. if (m_mediaStream->size()) - setStreamURL(m_observer, m_resources.request().url().toString()); + setStreamURL(m_observer, m_resources.request().url().toEncoded()); } else { //Load AVURLAsset //initialize asset using content's URL - setURL(m_observer, m_resources.request().url().toString()); + setURL(m_observer, m_resources.request().url().toEncoded()); } m_state = QMediaPlayer::StoppedState; @@ -1037,7 +1037,7 @@ void AVFMediaPlayerSession::streamReady() { - setStreamURL(m_observer, m_resources.request().url().toString()); + setStreamURL(m_observer, m_resources.request().url().toEncoded()); } void AVFMediaPlayerSession::streamDestroyed()