试着播放视频

时间:2014-10-07 20:09:37

标签: qt

我正在尝试使用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)。

感谢。 熊

2 个答案:

答案 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();