How to make a QMediaPlayer/QML MediaPlayer send a token in header or query of requests?
-
In order to acquire an access to remotely stored video, I need to send a user token in header of HTTP request. I am using
QMediaPlayerto stream it.m_player = new QMediaPlayer(this);I tried to use
setRawHeader(QByteArray("Token"), QByteArray("123456"));, onQNetworkRequestand feed it to myQMediaPlayer. No result.QNetworkRequest testRequest(QUrl("http://urltovideo/playlist.m3u8")); testRequest.setRawHeader(QByteArray("Token"), QByteArray("123456")); m_player->setMedia(testRequest);I tried to put it in
QMediaContentand than feed it toQMediaPlayer. Again, no result.QNetworkRequest testRequest(QUrl("http://urltovideo/playlist.m3u8")); testRequest.setRawHeader(QByteArray("Token"), QByteArray("123456")); QMediaContent testMediaContent(testRequest); m_player->setMedia(testMediaContent);Even if I add a query to the request, it have an effect only on first request of the
QMediaPlayer, then it requests chunk, no result.QUrl mediaUrl("http://urltovideo/playlist.m3u8"); QUrlQuery testQuery; testQuery.addQueryItem("Token", "123456"); mediaUrl.setQuery(testQuery); m_player->setMedia(mediaUrl);In all examples the video plays as it should (if token verification disabled).
How can I do that? Maybe there is a way to amend this field after request was formed?
I tried to make it work with QML
MediaPlayercomponent.Use of
setNetworkAccessManagerFactory()was not fruitful as well, like it shown here, works withImage, but it still does not work withMediaPlayer. Apperantely,MediaPlayerdoes not usingQNetworkAccessManager.How can I do that?