[SOLVED] QMediaPlayer plays local videos, but doesn't play remote videos
-
Windows 7 + Qt 5.1.0 mingw
QMediaPlayer plays local videos, but doesn't play remote videos. Local video file is the same as remote one. QMediaPlayer sets status QMediaPlayer::InvalidMedia shortly after start.
Here is the code:
@
int main(int argc, char *argv[])
{
QApplication app(argc, argv);QWidget wgt; QMediaPlayer *mediaPlayer = new QMediaPlayer(&wgt, QMediaPlayer::StreamPlayback); QVideoWidget *videoWidget = new QVideoWidget(&wgt); QBoxLayout *layout = new QVBoxLayout; layout->addWidget(videoWidget); wgt.setLayout(layout); mediaPlayer->setVideoOutput(videoWidget); mediaPlayer->setMedia(QUrl("http://mng.ivbn.net/mng/uploads/empty.mp4")); /* DOESN'T WORK! */ //mediaPlayer->setMedia(QUrl::fromLocalFile("C:/Users/Yury/Downloads/empty.mp4")); /* WORKS! */ mediaPlayer->play(); wgt.resize(640, 480); wgt.show(); return app.exec();
}
@ -
are you sure you have the QtNetwork module and linked against it?
-
I have
@
QT += network
@in my project file. To be completely sure, I've added example http://qt-project.org/doc/qt-5.1/qtnetwork/http.html to my project. The example works fine.
-
I found that
@
mediaPlayer->currentNetworkConfiguration()
@returns empty QNetworkConfiguration. My network connection is ok, and running
@
QNetworkConfigurationManager ncm;
foreach (QNetworkConfiguration nc, ncm.allConfigurations(QNetworkConfiguration::Active))
{
qDebug() << nc.name() << nc.identifier();
}
@gives me two active connections. But trying to set this active connections to my mediaPlayer fails:
@
mediaPlayer->setNetworkConfigurations(ncm.allConfigurations(QNetworkConfiguration::Active));
qDebug() << mediaPlayer->currentNetworkConfiguration().identifier(); // empty string!
@The documentation of QMediaPlayer states:
"QNetworkConfiguration QMediaPlayer::currentNetworkConfiguration() constReturns the current network access point in use. If a default contructed QNetworkConfiguration is returned this feature is not available or that none of the current supplied configurations are in use."
So, I have two possible reasons of my problem.