以下代码
QApplication a(argc, argv);
Phonon::MediaObject *media = new Phonon::MediaObject();
Phonon::VideoWidget *video = new Phonon::VideoWidget(NULL);
video->setGeometry(0, 0, 200, 200);
Phonon::createPath(media, video);
Phonon::MediaSource source("1.avi");
media->setCurrentSource(source);
media->play();
video->show();
return a.exec();
给我看了一段视频。没关系。但是这个:
QApplication a(argc, argv);
QGraphicsScene scene;
Phonon::MediaObject *media = new Phonon::MediaObject();
Phonon::VideoWidget *video = new Phonon::VideoWidget(NULL);
video->setGeometry(0, 0, 200, 200);
Phonon::createPath(media, video);
Phonon::MediaSource source("1.avi");
media->setCurrentSource(source);
media->play();
QGraphicsProxyWidget * pWidget = scene.addWidget(video,Qt::Widget);
QGraphicsView view(&scene);
view.show();
return a.exec();
向我显示了一个白色背景的小部件。。但我的视频在哪里?;)如果我把音频输出连接到媒体,我会听到电影的声音,所以流媒体正在进行。错误在哪里?(问题4.7.0)
在QGraphicsScene
中显示QWidget
相当棘手。有关更多信息,请参阅QGraphicsProxyWidget描述。基本上,您在QGraphicsView
中看到的小部件不是真正的小部件。QGraphicsView
只是将绘制事件重定向到底层的不可见QWidget
。这里似乎不支持视频重定向。
我认为你们不应该把你们的小部件放在场景里。例如,考虑将其放置在图形视图上方。