PySide2: как встроить HTML5-видео в QWebEngineView - PullRequest
1 голос
/ 17 октября 2019

Я пытаюсь отобразить видеофайл в приложении PySide2, которое я пишу. Это приложение использует QWebEngineView и загружает локальный html-файл , содержащий <video> тег , указывающий на локальный файл mov или mp4. Каким-то образом я вижу плеер, но он не загружает файл.

Я собрал эту небольшую HTML-страницу, которая прекрасно загружается в Chrome, но не в моем приложении. Обратите внимание, что в этом файле я использую онлайн-файл mp4, но я пробовал как локальные, так и онлайн-файлы, mov и mp4.

<!doctype html>
<html lang="en">

<head>
</head>

<body>
    <video width="320" height="240" controls>
        <source src="https://archive.org/download/VideoTestFiles/1280X72025FpsPhotoJpeg75.mp4" type="video/mp4" >
    </video>
</body>

В моем приложении PySide2 я загружаю страницукак следует:

import os, sys
from PySide2 import QtWidgets
from PySide2.QtWebEngineWidgets import QWebEngineView, QWebEngineSettings
from PySide2.QtCore import QUrl



app = QtWidgets.QApplication(sys.argv)

view = QWebEngineView()

path = os.path.join(os.path.dirname(os.path.realpath(__file__)), "test.html")
view.load(QUrl.fromLocalFile(path))

view.show()

sys.exit(app.exec_())

Я также пробовал следующие настройки, ни одна из которых, кажется, не помогает:

view.settings().setAttribute(QWebEngineSettings.PluginsEnabled, True)
view.settings().setAttribute(QWebEngineSettings.JavascriptEnabled, True)
view.settings().setAttribute(QWebEngineSettings.AllowRunningInsecureContent, True)
view.settings().setAttribute(QWebEngineSettings.LocalContentCanAccessFileUrls, True)
view.settings().setAttribute(QWebEngineSettings.LocalContentCanAccessRemoteUrls, True)

Любая помощь приветствуется!


Редактировать:

Я только что понял: хотя в консоли Chrome нет ошибки, в консоли Python после закрытия приложения отображается ошибка:

[9476:13164:1017/182854.157:ERROR:media_internals.cc(102)] Cannot get RenderProcessHost
...