Невозможно выполнить поиск видео в PyQt4

#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();
  

Я предполагаю, что ваше видео недоступно для поиска.

Какой носитель вы используете? Такие вещи, как потоковое видео (например), обычно недоступны для поиска.