qwebengine不支持html5播放,python - PySide2: How to embed HTML5 video in QWebEngineView - Stack Overflow...

林运浩
2023-12-01

I am trying to display a video file inside a PySide2 app I'm writing. That app uses a QWebEngineView and loads a local html file that contains a tag, pointing to a local mov or mp4 file. Somehow I can see the player, but it doesn't load the file.

I've put this little html test page together which loads fine in Chrome, but not in my app. Note that in this file I'm using an online mp4 file, but I've tried both, local and online files, mov and mp4.

In my PySide2 app, I'm loading the page like follows:

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_())

I have also tried the following settings, none of which seem to help:

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)

Any help appreciated!

Edit:

I just realized: while there is no error in Chrome console, there is an error being displayed in the Python console after closing the app:

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

 类似资料: