#python #pyqt4 #phonon
#python #pyqt4 #phonon
Вопрос:
Я написал простой видеопроигрыватель, используя 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_()
Все, что я пытаюсь сделать, это запускать и останавливать видео в заданных позициях.
Заранее спасибо.
Ответ №1:
Невозможно выполнить поиск позиции в источнике мультимедиа, пока он все еще загружается.
Поэтому подключите обработчик к сигналу медиа-объекта с изменением состояния и подождите, пока его состояние не изменится на PlayingState, прежде чем пытаться выполнить поиск.
self.player.mediaObject().stateChanged.connect(self.handleStateChanged)
...
def handleStateChanged(self, newstate, oldstate):
if newstate == Phonon.PlayingState:
self.player.seek(10240)
Ответ №2:
Некоторые носители нелегко найти с помощью Phonon. В документации говорится
Обратите внимание, что серверная часть может игнорировать запрос на поиск, если источник мультимедиа недоступен для поиска; вы можете проверить это, запросив медиа-объект видеоплеера.
player->mediaObject()->isSeekable();
Я предполагаю, что ваше видео недоступно для поиска.
Какой носитель вы используете? Такие вещи, как потоковое видео (например), обычно недоступны для поиска.