2016-06-19 61 views
2

1つのビデオだけを再生する場合は成功ですが、2つまたは3つは失敗です。 QGraphicsVideoItemのドキュメントには次のように書かれています。Qtで同時にQGraphicsViewで複数の動画を再生するには?

注:一度にメディアオブジェクトに表示できる出力は1つだけです。

QGraphicsViewで1つ以上のビデオを再生する方法を知りたいですか? ありがとう!

私のテストコード:

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

私の場合、コードは機能しています。私はDebian JessieのQt 5.7を使っています。 – Tarod

答えて

0

私はあなたが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(); 
関連する問題