2011-11-06 58 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

這解決了我的問題。非常感謝。 –