我正在尝试使用QMedia播放器播放视频文件。这是我的代码。它会弹出一个新窗口,但文件无法播放。变量视频是一个QString,它保存文件的相对路径,在这种情况下它将是" videos / wildlife.wmv"。我做错了什么?
QMediaPlayer* player = new QMediaPlayer(this);
QMediaPlaylist* list = new QMediaPlaylist();
QVideoWidget *vw = new QVideoWidget();
list->addMedia(QUrl::fromLocalFile(video));
player->setVolume(100);
player->setPlaylist(list);
player->setVideoOutput(vw);
vw->show();
list->setCurrentIndex(0);
player->play();
我注意到在Application输出窗口中我得到以下消息: setGeometry:无法在QWidgetWindow /' QVideoWidgetClassWindow'上设置几何0x0 + 480 + 190。产生的几何:116x0 + 480 + 190(帧:8,30,8,8,自定义边距:0,0,0,0,最小尺寸:0x0,最大尺寸:16777215x16777215)。
感谢。 熊
答案 0 :(得分:2)
您需要为播放器分配播放列表:
player->setPlaylist(list);
也从列表的开头开始:
list->setCurrentIndex(0);
答案 1 :(得分:1)
此错误可能是由错误的文件路径引起的(当您的文件未加载时,播放器无需显示任何内容)。例如,将未显示的pixmap设置为label时,您将得到相同的错误。
尝试:
设置文件的完整路径,现在检查是否正常。
使用QFile::exists()
确保您的文件(相对路径)存在。
当我在我的计算机上尝试你的代码(MOV文件格式)时,我得到了同样的错误,我没有看到视频,但我听到了声音。我是怎么把它固定在我的电脑上的?至少尝试下一步,也许有帮助:
我以编程方式调整QVideoWidget
。例如:
//your code
player->setVideoOutput(vw);
vw->show();
vw->resize(1000,600);//Add this line
list->setCurrentIndex(0);
player->play();