我在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_()
我所要做的就是在给定的位置开始和停止视频。
当媒体源仍在加载时,不可能查找到媒体源中的位置。
因此,将处理程序连接到媒体对象的statechange信号,并等待直到它的状态变为PlayingState,然后再尝试查找。
self.player.mediaObject().stateChanged.connect(self.handleStateChanged)
...
def handleStateChanged(self, newstate, oldstate):
if newstate == Phonon.PlayingState:
self.player.seek(10240)
有些媒体不容易被Phonon搜索到。文档说
请注意,如果媒体源不可寻,后端可以自由忽略查找请求;您可以通过询问VideoPlayer的media对象来检查。
player->mediaObject()->isSeekable();
我猜你的视频无法搜索。
你用的是什么媒体?像流媒体视频(例如),通常是不可搜索的。