Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt QMediaPlayer:媒体处于未知状态_Qt_Qmediaplayer - Fatal编程技术网

Qt QMediaPlayer:媒体处于未知状态

Qt QMediaPlayer:媒体处于未知状态,qt,qmediaplayer,Qt,Qmediaplayer,我创建了一个QMediaPlayer,将视频地址传递给它,但它不会播放。我检查了mediaStatus和player状态,它们始终保持0。基本思想是: QMediaPlayer player = new QMediaPlayer(); cout << player.mediaStatus(); // should print 1: NoMedia but is 0: UnknownMediaStatus player.setVideoOutput(some_constructed_

我创建了一个QMediaPlayer,将视频地址传递给它,但它不会播放。我检查了mediaStatus和player状态,它们始终保持0。基本思想是:

QMediaPlayer player = new QMediaPlayer();
cout << player.mediaStatus(); // should print 1: NoMedia but is 0: UnknownMediaStatus

player.setVideoOutput(some_constructed_video_widget);
cout << player.mediaStatus(); // should print 1: NoMedia but is 0: UnknownMediaStatus

player.setMedia(QUrl::fromLocalFile("path/to/test/video/test.mp4"));
cout << player.mediaStatus(); // should print 2: LoadingMedia but is 0: UnknownMediaStatus

player.play();
cout << player.mediaStatus(); // should print 3: LoadedMedia but is 0: UnknownMediaStatus
                              // and of course, no video gets played

我使用的是Mac 10.9和Qt 5.3.0,但我认为Mac/Qt版本与此问题无关。

@ddriver Nope。。。我在mac 10.9上,为未来用户使用Qt 5.3.0:首先确保您的pro文件中有此文件:Qt+=多媒体QTPLUGIN+=qavfmediaplayer如果是,那么您得到的输出是因为QtMultimedia找不到与您的平台相关联的多媒体后端。您可以根据平台查看后端列表。请安装并重试。我在Linux上使用Qt5时遇到了这个问题,我需要安装gstreamer后端。
int main(int argc, char *argv[])
{
    QMediaPlayer * temp = new QMediaPlayer(0, QMediaPlayer::VideoSurface);
    std::cout << "Constructed: " << temp->mediaStatus() << std::endl;
    temp->setMedia(QUrl::fromLocalFile("path/to/video/test.mp4"));
    std::cout << "SetMedia: " << temp->mediaStatus() << std::endl;
    temp->play();
    std::cout << "Play: " << temp->mediaStatus() << std::endl;
-> debug breakpoint here
    ......
}
defaultServiceProvider::requestService(): no service found for - "org.qt-project.qt.mediaplayer"
Constructed: 0
SetMedia: 0
Play: 0