无法在PyQt4中寻找视频

时间:2011-11-06 19:44:16

标签: python pyqt4 phonon

我在PyQt4中使用Phonon编写了一个简单的视频播放器。视频播放得很好。但我无法寻找视频给定的位置。这是我写的代码:

#!/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_()

我所要做的就是在给定位置开始和停止视频。

提前致谢。

2 个答案:

答案 0 :(得分:1)

在媒体源仍处于加载状态时,无法在媒体源中寻找位置。

因此,将处理程序连接到媒体对象的stateChanged信号,并在尝试搜索之前等待状态更改为PlayingState

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

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

答案 1 :(得分:0)

Phonon不容易寻找某些媒体。文档说

请注意,如果媒体源不可搜索,后端可以自由忽略搜索请求;您可以通过询问VideoPlayer的媒体对象来检查这一点。

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

我的猜测是您的视频无法搜寻。

您使用的是哪种媒体?像流视频(例如)这样的东西通常是不可寻找的。