Qt QMediaPlayer:媒体处于未知状态
我创建了一个QMediaPlayer,将视频地址传递给它,但它不会播放。我检查了mediaStatus和player状态,它们始终保持0。基本思想是: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 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