我尝试使用qgraphicView显示视频,但我的代码没有显示任何内容。什么问题
QGraphicsScene scene;
QGraphicsVideoItem *item1 = new QGraphicsVideoItem;
item1->setPos(0,100);
QMediaPlayer * player1 = new QMediaPlayer;
player1->setVideoOutput(item1);
player1->setMedia(QUrl("/home/1.wmv"));
QGraphicsView view;
view.scale(0.3,0.3);
view.setScene(&scene);
view.show();
player1->play();
您正在创建一个QGraphicsVideoItem
,您将其用作QMediaPlayer
的输出,并创建一个QGraphicsView
,您可以在其中分配QGraphicsScene
。但是您没有将QGraphicsVideoItem
(或QMediaPlayer
(连接到QGraphicsView
(或QGraphicsScene
(,因此显然在QGraphicsView
中没有显示任何内容。
请注意,这只是基于您提供的不完整代码的猜测答案。将来,请确保包含所有相关代码/创建最小,可重现的示例
你忘了:
scene->addItem(item1);
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QGraphicsScene * scene = new QGraphicsScene();
QGraphicsView * view = new QGraphicsView(scene);
QGraphicsVideoItem *item1 = new QGraphicsVideoItem;
QMediaPlayer * player1 = new QMediaPlayer;
scene->addItem(item1);
item1->setPos(0,100);
view->scale(0.3,0.3);
view->show();
player1->setVideoOutput(item1);
player1->setMedia(QUrl::fromLocalFile("/home/user/Musik/musik.mp4"));
player1->play();
return a.exec();
}