gpt4 book ai didi

c++ - QVideoWidget黑窗

转载 作者:行者123 更新时间:2023-11-28 00:07:28 24 4
gpt4 key购买 nike

我已将 QVideoWidget 作为子项添加到 QWidget,我正在尝试播放本地 avi 文件,但没有成功。这是代码:

#include "widget.h"
#include <QApplication>
#include <QtWidgets>
#include <QtMultimediaWidgets>

int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Widget window;
window.resize(320, 240);
window.setWindowTitle(QApplication::translate("childwidget", "Child widget"));
window.show();

QMediaPlayer *player = new QMediaPlayer;

QMediaPlaylist *playlist = new QMediaPlaylist(player);
playlist->addMedia(QUrl::fromLocalFile("/home/designer/Desktop/drop.avi"));

QVideoWidget *videoWidget = new QVideoWidget(&window);
player->setVideoOutput(videoWidget);

videoWidget->resize(320, 240);
videoWidget->show();
playlist->setCurrentIndex(1);
player->play();

return a.exec();
}

我在我的 .pro 文件中包含了多媒体、多媒体小部件和小部件。

gstreamer 软件包也使用 sudo apt-get install gstreamer* libgstreamer* 安装,版本为 0.10。

我在 VMWare 上运行 Debian Wheezy 并尝试为 i386 桌面计算机构建该代码。

我是不是遗漏了一些重要的东西,所以这段代码无法运行?只有我得到的是父 QWidget 中的黑色 QVideoWidget 窗口。

最佳答案

您的问题似乎与 GStreamer 相关。请安装 gst123 播放器(纯 gstreamer 播放器)并确保播放文件时没有打印错误。如果没有,QMediaPlayer 也不会播放它。

如果 gst123 不工作,它是:

  1. 您没有安装播放此文件所需的所有 GStreamer 插件。根据我的经验,您至少需要以下内容:
gstreamer-plugins-good
gstreamer-plugins-base
gstreamer-plugins-ugly
gstreamer-plugins-bad-orig-addon
gstreamer-plugins-qt5
gstreamer-plugins-bad
gstreamer-plugins-good-extra
gstreamer-plugins-ugly-orig-addon
gstreamer-plugins-libav

确保你安装了正确版本的插件(例如,如果你的机器有 gstreamer_0.10 和 gstreamer 1.x)。 Qt 使用 GStreamer 1.x

  1. 如果您使用的是 OpenSuSE,则您的 GStreamer 安装会严重受损,几乎无法使用。您需要添加 Packman 存储库并使用“供应商更改”重新安装所有已安装 GStreamer 包。

  2. 对于某些视频,VDPAU 驱动程序会在 QMediaPlayer 中破坏它(同时使用 gst123 正常播放)- 尝试删除 gstreamer VDPAU 插件来检查它。

关于c++ - QVideoWidget黑窗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34719486/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com