[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();
    

    }
    @


  • Moderators

    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() const

    Returns 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.



  • I tried to play different file formats - mov and ts. It works! Perhaps the problem is related to the codecs in my system.
    It takes a lot of time before the video starts, but that's another story )

    SOLVED!


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.