Qt QGraphicsView不播放任何视频

时间:2020-03-02 20:04:58

标签: qt qgraphicsview qmediaplayer

我有一个非常简单的QT 5.11.0应用程序,带有我要在其中播放视频的graphicsview。

这是我的代码,它编译,加载并显示空白的graphicsview。

#include "Demo_TeleLink.h"


Demo_TeleLink::Demo_TeleLink(QWidget *parent)
    : QMainWindow(parent)
{
    ui.setupUi(this);

    scene = new QGraphicsScene;
    player = new QMediaPlayer();
    videoItem = new QGraphicsVideoItem;
    newString = "C://Users//Chris//Desktop//Sample1.mp4";

    ui.graphicsView->setScene(scene);

    player->setVideoOutput(videoItem);

    ui.graphicsView->scene()->addItem(videoItem);

    player->setMedia(QUrl(newString));

    ui.graphicsView->fitInView(videoItem);

    player->play();
}

如果需要,所有必需的对象都在标头中声明为点。

enter image description here

1 个答案:

答案 0 :(得分:1)

QUrl("/path/of/video")不是有效的url,因为没有推断出表明它是本地文件的方案文件,有两种可能的解决方案:

player->setMedia(QUrl::fromLocalFile(newString));

player->setMedia(QUrl::fromUserInput(newString));

也许路径编码不正确,请尝试使用以下代码并手动选择视频

newString = QFileDialog::getOpenFileName(this,
                                         tr("Open Video"),
                                         QDir::homePath(),
                                         tr("Video Files (*.mp4)"));

OP表示它获得以下错误消息:

DirectShowPlayerService::doRender: Unresolved error code 0x80040266 (IDispatch error #102)

根据报告的QTBUG-52082,解决方案是安装编解码器以播放http://www.codecguide.com/download_kl.htm中的mp4