【问题标题】:Qt QGraphicsView not playing any videoQt QGraphicsView不播放任何视频
【发布时间】:2020-03-02 20:04:58
【问题描述】:

我有一个非常简单的 QT 5.11.0 应用程序,它有一个图形视图,我想在其中播放视频。

这是我的代码,它编译、加载并显示一个空白的图形视图。

#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();
}

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

【问题讨论】:

    标签: qt qgraphicsview qmediaplayer


    【解决方案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

    【讨论】:

    • 嘿,谢谢你的回答,遗憾的是,无论我在那里使用哪个选项,仍然是一个空白窗口。
    • @Chris Qt Creator 的“应用程序输出”选项卡中是否收到错误消息?
    • 这是在VS中运行的
    • @Chris 我不使用VS,也许有一个类似于该信息的选项卡,如果没有,然后打开一个cmd并从那里运行.exe,你肯定会收到一条错误消息。
    • 我将子系统切换到控制台,这样我就可以打印调试了,但有一个错误代码。 DirectShowPlayerService::doRender: 未解决的错误代码 0x80040266(IDispatch 错误 #102)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-23
    • 1970-01-01
    • 1970-01-01
    • 2014-06-13
    相关资源
    最近更新 更多