diff options
Diffstat (limited to 'src/multimedia/playback/qmediaplayer.cpp')
-rw-r--r-- | src/multimedia/playback/qmediaplayer.cpp | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/src/multimedia/playback/qmediaplayer.cpp b/src/multimedia/playback/qmediaplayer.cpp index 81d525ea8..6ff3fc7df 100644 --- a/src/multimedia/playback/qmediaplayer.cpp +++ b/src/multimedia/playback/qmediaplayer.cpp @@ -183,7 +183,7 @@ bool QMediaPlayerPrivate::isInChain(const QUrl &url) // Check whether a URL is already in the chain of playlists. // Also see a comment in parentPlaylist(). for (QMediaPlaylist *current = rootMedia.playlist(); current && current != playlist; current = current->currentMedia().playlist()) - if (current->currentMedia().canonicalUrl() == url) { + if (current->currentMedia().request().url() == url) { return true; } return false; @@ -345,10 +345,10 @@ void QMediaPlayerPrivate::setMedia(const QMediaContent &media, QIODevice *stream // Backends can't play qrc files directly. // If the backend supports StreamPlayback, we pass a QFile for that resource. // If it doesn't, we copy the data to a temporary file and pass its path. - if (!media.isNull() && !stream && media.canonicalUrl().scheme() == QLatin1String("qrc")) { + if (!media.isNull() && !stream && media.request().url().scheme() == QLatin1String("qrc")) { qrcMedia = media; - file.reset(new QFile(QLatin1Char(':') + media.canonicalUrl().path())); + file.reset(new QFile(QLatin1Char(':') + media.request().url().path())); if (!file->open(QFile::ReadOnly)) { QMetaObject::invokeMethod(q, "_q_error", Qt::QueuedConnection, Q_ARG(int, QMediaPlayer::ResourceError), @@ -464,11 +464,14 @@ void QMediaPlayerPrivate::loadPlaylist() // Do not load a playlist if there are more than MAX_NESTED_PLAYLISTS in the chain already, // or if the playlist URL is already in the chain, i.e. do not allow recursive playlists and loops. - if (nestedPlaylists < MAX_NESTED_PLAYLISTS && !q->currentMedia().canonicalUrl().isEmpty() && !isInChain(q->currentMedia().canonicalUrl())) { - pendingPlaylist = QMediaContent(new QMediaPlaylist, q->currentMedia().canonicalUrl(), true); + if (nestedPlaylists < MAX_NESTED_PLAYLISTS + && !q->currentMedia().request().url().isEmpty() + && !isInChain(q->currentMedia().request().url())) + { + pendingPlaylist = QMediaContent(new QMediaPlaylist, q->currentMedia().request().url(), true); QObject::connect(pendingPlaylist.playlist(), SIGNAL(loaded()), q, SLOT(_q_handlePlaylistLoaded())); QObject::connect(pendingPlaylist.playlist(), SIGNAL(loadFailed()), q, SLOT(_q_handlePlaylistLoadFailed())); - pendingPlaylist.playlist()->load(pendingPlaylist.canonicalRequest()); + pendingPlaylist.playlist()->load(pendingPlaylist.request()); } else if (playlist) { playlist->next(); } |