我将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,并试图为i386桌面计算机构建该代码。
我是不是遗漏了一些重要的东西,这样代码就不能工作了?只有我在帕伦特QWidget里面是黑色的QWidget窗口。
发布于 2016-01-13 04:01:41
你的问题似乎与GStreamer有关。请安装一个gst123播放器(这是纯gstreamer的播放器),并确保它没有打印错误的文件。如果没有,QMediaPlayer也不会播放它。
如果gst123不能工作,则它是以下任一项:
gstreamer plugins-好gstreamer plugins-基本gstreamer plugins-丑陋gstreamer插件-坏-源-插件-qt5 gstreamer插件-坏gstreamer插件-好-额外gstreamer插件-丑陋-源-插件-libav
确保您安装了适当版本的插件(例如,如果您的计算机有gstreamer_0.10和GStreewer1.x)。Qt使用GStreamer 1.x
发布于 2016-01-11 12:12:19
我想你忘了给玩家设置播放列表了:
player->setPlaylist(playlist);发布于 2016-01-12 03:26:56
这是一个有点评论,所以我做了一个答复。但是如果你使用你知道的视频会发生什么呢?
此外,我还测试了以下最小的代码段(请参阅有关它的问题here)。也许在完成这个任务之后,整合播放列表就可以轻松地完成了。
int main( int argc, char **argv ){
QApplication app(argc, argv);
QMediaPlayer *media=new QMediaPlayer(0);
QVideoWidget *video=new QVideoWidget(0); //new QGLWidget()
media->setVideoOutput(video);
media->setMedia(QUrl::fromLocalFile("/tmp/avatar.mp4"));
media->play();
video->show();
return app.exec();
}https://stackoverflow.com/questions/34719486
复制相似问题