2012-08-25 2 views
1

나는 그림 등을 오버레이 할 수 있도록 포논 비디오 위젯을 qgraphicsscene에 배치하고 싶습니다. 다음을 실행하면 사운드는 나오지만 비디오는 qgraphicsview에서 재생되지 않습니다. 제가보기에 보여준 것처럼 내가 생각한대로 도와 주시면 감사하겠습니다. 그러나 나는 비디오 플레이어와 비디오 위젯을 어떻게 이해했는지 의심 스럽다.Phonon videowidget on qgraphicsview

테스트를 위해 파일에서 바로 비디오를 재생하고 있습니다.

from PySide import QtGui, QtCore 
from PySide.phonon import Phonon 
from window import Ui_MainWindow # main GUI window 
import os, sys 

class DiagramScene(QtGui.QGraphicsScene): 
    InsertItem, InsertLine, InsertText, MoveItem = range(4) 

    def __init__(self): 
     super(DiagramScene, self).__init__() 
     self.myLineColor = QtCore.Qt.black 
     self.myMode = "Start" 
     self.line = None 

    def mousePressEvent(self, mouseEvent): 
     if (mouseEvent.button() == QtCore.Qt.LeftButton): 
      if self.myMode == "Start": 
       self.line = QtGui.QGraphicsLineItem(QtCore.QLineF(mouseEvent.scenePos(), mouseEvent.scenePos())) 
       self.addItem(self.line) 
     elif (mouseEvent.button() == QtCore.Qt.RightButton): 
      self.addText("Hello") 
     super(DiagramScene, self).mousePressEvent(mouseEvent) 

    def mouseMoveEvent(self, mouseEvent): 
     if self.line: 
      newLine = QtCore.QLineF(self.line.line().p1(), mouseEvent.scenePos()) 
      self.line.setLine(newLine) 

    def mouseReleaseEvent(self, mouseEvent): 
     self.line = None 
     super(DiagramScene, self).mouseReleaseEvent(mouseEvent) 

class QPlayer(QtGui.QWidget): 

    def __init__(self): 
     super(QPlayer, self).__init__() 
     media_src = Phonon.MediaSource("C:\Users\Public\Videos\Sample Videos\Wildlife.wmv") 
     self.audioOuptut=Phonon.AudioOutput(Phonon.MusicCategory, self) 
     self.player=Phonon.MediaObject(self) 
     self.player.setCurrentSource(media_src) 
     Phonon.createPath(self.player, self.audioOuptut) 
     self.videoWidget=Phonon.VideoWidget(self) 
     self.videoWidget.FitInView 
     Phonon.createPath(self.player, self.videoWidget) 
     self.player.play() 

class Main(QtGui.QMainWindow): 
    def __init__(self): 
     super(Main, self).__init__() 
     self.ui=Ui_MainWindow() 
     self.ui.setupUi(self) 
     self.scene = DiagramScene() 
     self.scene.addWidget(QPlayer()) 
     self.gview = self.ui.gView 
     self.gview.setScene(self.scene) 

def main(): 
    app = QtGui.QApplication(sys.argv) 
    window=Main() 
    window.show() 
    sys.exit(app.exec_()) 

if __name__ == "__main__": 
    main() 

답변

2

괜찮 았는데 - (정도까지) 정렬했습니다. 간단한 경우 : 동영상은 정말 잘 실행되지 않습니다

self.videoWidget.setMinimumSize(640,480) 

는 -을 많이 나누기 그러나 적어도 나는 그것을 그릴 수 있습니다 :)