Можно ли мгновенно воспроизвести видео с помощью QMediaPlayer?

я используюQMediaPlayerдля вывода видео, содержащего звук, наQVideoWidget. Когда я использую видео без звука , оно воспроизводится мгновенно, но если в видео есть звук , воспроизведение занимает несколько секунд после звонка.player.play().

Есть ли способ сделать так, чтобы видео со звуком воспроизводилось сразу после звонка?play()?

Я пробовал следовать этому ответу , но получаюError: "failed to seek".

Я использую Ubuntu 23.04, Python 3.11 и PyQt5.

Вот пример:

      from PyQt5.QtWidgets import QApplication, QMainWindow, QWizard, QWizardPage, QPushButton, QVBoxLayout
from PyQt5.QtMultimedia import QMediaPlayer, QMediaContent
from PyQt5.QtCore import QUrl
from PyQt5.QtMultimediaWidgets import QVideoWidget


class VideoPage(QWizardPage):
    def __init__(self):
        super().__init__()

        layout = QVBoxLayout()
        self.setLayout(layout)

        self.player = QMediaPlayer(self)
        self.media_content = QMediaContent(QUrl.fromLocalFile('path/to/vid.mp4'))
        self.player.setMedia(self.media_content)
        self.video = QVideoWidget()
        self.player.setVideoOutput(self.video)
        
        play_button = QPushButton('Play Video')
        play_button.clicked.connect(self.play_video)
        layout.addWidget(self.video)
        layout.addWidget(play_button)

    def play_video(self):
        self.player.play()

if __name__ == '__main__':
    import sys
    app = QApplication(sys.argv)
    wizard = QWizard()
    video_page = VideoPage()
    wizard.addPage(video_page)
    wizard.setWindowTitle('Video Wizard')
    wizard.show()
    sys.exit(app.exec_())

0 ответов

Другие вопросы по тегам