2011-11-06 3 views
2

저는 PyQt4에서 Phonon을 사용하여 간단한 비디오 플레이어를 썼습니다. 동영상이 잘 재생됩니다. 그러나 나는 주어진 위치에 비디오를 찾을 수 없습니다. 필자가 작성한 코드 :PyQt4에서 비디오를 찾을 수 없습니다.

#!/usr/bin/python 

from PyQt4.QtCore import * 
from PyQt4.QtGui import * 
from PyQt4.phonon import Phonon 
import sys 

class VideoPlayer(QWidget): 

    def __init__(self, address, parent = None): 
     self.address = address 
     QWidget.__init__(self) 
     self.player = Phonon.VideoPlayer(Phonon.VideoCategory, self) 
     self.player.load(Phonon.MediaSource(self.address)) 
     window = QHBoxLayout(self) 
     window.addWidget(self.player) 
     self.setWindowTitle("Simple Video Player") 
     self.player.play() 
     self.player.seek(10240) 

app = QApplication(sys.argv) 
vp = VideoPlayer(sys.argv[1]) 
vp.show() 
app.exec_() 

내가하려는 것은 주어진 위치에서 비디오를 시작하고 중지하는 것입니다.

미리 감사드립니다.

답변

0

일부 미디어는 Phonon에서 쉽게 찾을 수 없습니다. 설명서에 표시되는 내용

미디어 소스를 검색 할 수없는 경우 백엔드에서 검색 요청을 무시해도됩니다. VideoPlayer의 미디어 객체에 요청하여이를 확인할 수 있습니다.

player->mediaObject()->isSeekable(); 

내 생각 엔 동영상이 시크되지 않는 것입니다.

어떤 미디어를 사용하고 있습니까? 스트리밍 비디오 (예 :)와 같은 것들은 일반적으로 검색 할 수 없습니다.

1

아직로드 중일 때 미디어 소스의 위치를 ​​찾는 것은 불가능합니다.

따라서 미디어 객체의 stateChanged 신호에 핸들러를 연결하고 검색을 시도하기 전에 상태가 PlayingState으로 변경 될 때까지 기다리십시오.

self.player.mediaObject().stateChanged.connect(self.handleStateChanged) 
... 

def handleStateChanged(self, newstate, oldstate): 
    if newstate == Phonon.PlayingState: 
     self.player.seek(10240) 
+0

내 문제가 해결되었습니다. 고마워. –

관련 문제