Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Qt中同时在QGraphicsView中播放多个视频?_Qt - Fatal编程技术网

如何在Qt中同时在QGraphicsView中播放多个视频?

如何在Qt中同时在QGraphicsView中播放多个视频?,qt,Qt,如果只播放一个视频,它是成功的。但两个或三个,它是失败的。 我注意到QGraphicsVideoItem的文档: 注意:一次只能将一个显示输出连接到媒体对象 所以,我想知道如何在QGraphicsView中播放多个视频? 谢谢 我的测试代码: #include <QtWidgets/QApplication> #include <QGraphicsScene> #include <QGraphicsVideoItem> #include <QMediaP

如果只播放一个视频,它是成功的。但两个或三个,它是失败的。 我注意到QGraphicsVideoItem的文档:

注意:一次只能将一个显示输出连接到媒体对象

所以,我想知道如何在QGraphicsView中播放多个视频? 谢谢

我的测试代码:

#include <QtWidgets/QApplication>
#include <QGraphicsScene>
#include <QGraphicsVideoItem>
#include <QMediaPlayer>
#include <QGraphicsView>

int main(int argc, char *argv[])
{
QApplication a(argc, argv);

QGraphicsScene scene;
scene.setSceneRect(0,0,1920,1080);

QGraphicsVideoItem *item1 = new QGraphicsVideoItem;
QMediaPlayer * player1 = new QMediaPlayer;  
player1->setVideoOutput(item1);
player1->setMedia(QUrl::fromLocalFile("C:/Users/Public/Videos/Sample Videos/1.wmv"));
player1->setVolume(0);
scene.addItem(item1);
item1->setPos(0,100);

QGraphicsVideoItem *item2 = new QGraphicsVideoItem;
QMediaPlayer * player2 = new QMediaPlayer;
player2->setVideoOutput(item2);
player2->setMedia(QUrl::fromLocalFile("C:/Users/Public/Videos/Sample Videos/2.wmv"));
player2->setVolume(0);
scene.addItem(item2);
item1->setPos(500,500); 

QGraphicsView view;
view.setScene(&scene);
view.scale(0.3,0.3);
view.show();
player1->play();
player2->play();


return a.exec();
}
#包括
#包括
#包括
#包括
#包括
int main(int argc,char*argv[])
{
质量保证申请a(argc、argv);
QsCENE场景;
场景。设置场景(0,0192010800);
QGraphicsVideoItem*item1=新的QGraphicsVideoItem;
QMediaPlayer*player1=新的QMediaPlayer;
player1->setVideoOutput(项目1);
player1->setMedia(QUrl::fromLocalFile(“C:/Users/Public/Videos/Sample Videos/1.wmv”);
player1->设置音量(0);
场景.补充项目(第1项);
项目1->setPos(0100);
QGraphicsVideoItem*item2=新的QGraphicsVideoItem;
QMediaPlayer*player2=新的QMediaPlayer;
player2->setVideoOutput(项目2);
player2->setMedia(QUrl::fromLocalFile(“C:/Users/Public/Videos/Sample Videos/2.wmv”);
player2->设置音量(0);
场景.补充项目(项目2);
第1项->设置位置(500500);
QGraphicsView视图;
视图。设置场景(和场景);
视图.比例(0.3,0.3);
view.show();
player1->play();
player2->play();
返回a.exec();
}

我可以建议一种在QGraphicsView上显示视频的方法

QMediaPlayer *player1 = new QMediaPlayer(this);
QVideoWidget *video1 = new QVideoWidget(this);
QGraphicsVideoItem *item1 = new QGraphicsVideoItem;
QGraphicsView *view  = new QGraphicsView(this);

player1->setVideoOutput(item1);
player1->setMedia(QUrl::fromLocalFile("C:/Users/Public/Videos/Sample Videos/1.wmv"));

player1->play();

view->setViewport(video1);
player1->setVideoOutput(video1);

view->show();

代码在我的情况下起作用。我在Debian Jessie中使用Qt5.7。