首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于vlc视频的Qt覆盖QGraphicsView

基于vlc视频的Qt覆盖QGraphicsView
EN

Stack Overflow用户
提问于 2013-06-27 14:38:49
回答 2查看 2.3K关注 0票数 1

我有一些麻烦,以实现VLC播放器到我的项目。我需要覆盖视频与QgraphicsView (基本画布),这样我就能画东西。我试过这样做:

  1. 将winId指针指向QgraphicsView。视频呈现得很好,但是它呈现在对象的顶部,所以我的图形项在视频层下面。=>失败
  2. 创建新的QGraphics对象作为主QGraphics对象的子对象,然后将视频呈现给该子对象。结果与上述相同。=>失败
  3. 覆盖QWidget与渲染的视频与我的QGraphicsView (相同的pos和大小)。我设置了透明的背景,所以我可以看到覆盖的小部件,但是这个层下的视频不会呈现。我保持白色,但我能听到它的演奏。=>失败

我在这个论坛上读到,有人提取每一帧,并将其设置为像素映射到一个对象。我看到了代码,但是我没有理解它,因为我不是C++专业人员:(我正在为Qt (PySide)和VLC使用(PySide))。请帮帮忙,真让我心烦:

http://forum.videolan.org/viewtopic.php?f=32&t=68816&p=228645

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-07-06 10:35:45

最近,我用了集成声子播放器。可以将声子视频小部件作为GraphicsItem通过QGraphicsProxyWidget添加。在Windows背景下使用K编解码包就像一种魅力。

票数 1
EN

Stack Overflow用户

发布于 2014-01-31 09:57:38

我知道这个问题已经过去一段时间了,但我只是偶然发现了这个问题,今天我试图解决这个问题,并想出我的解决方案。

差不多你的第三次尝试是正确的,但你也必须使你使用的QGraphicsView透明,因为这是你看到的白色。您只需确保视图用setGeometry手动跟踪窗口,就可以设置好了。

代码语言:javascript
复制
#assuming you're inside a main window that is self
scene = QGraphicsScene()
scene.setBackgroundBrush(QBrush(QColor(255, 0,0,90))) #creates a semitransparent red over VLC

view = QGraphicsView(self)
view.setScene(self.scene)
view.setGeometry(0,0,self.width(),self.height())

self.view.setStyleSheet("background: transparent");
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17346149

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档