PyQt5 (python) GUI 在运行 .exe 后崩溃,未解决的错误代码 0x80004005(未指定的错误)
Posted
技术标签:
【中文标题】PyQt5 (python) GUI 在运行 .exe 后崩溃,未解决的错误代码 0x80004005(未指定的错误)【英文标题】:PyQt5 (python) GUI crashes after running .exe, Unresolved error code 0x80004005 (Unspecified error) 【发布时间】:2020-05-13 23:33:48 【问题描述】:我制作了一个播放视频的非常简单的 PyQt5 桌面应用。它在 Pycharm 中运行良好,这让我怀疑代码没有问题,并且问题与 Windows 有关。
我使用 Pyinstaller 创建了一个 .exe 文件。不幸的是,运行 .exe 后,应用程序在打开后短暂崩溃,视频变灰而不是播放。
用于创建视频的代码部分:
# create link to movie file
movie_file = QtCore.QUrl.fromLocalFile('C:/Users/Owner/PycharmProjects/BF4 Deployment Timer/3d
video background 2.mp4')
media = QtMultimedia.QMediaContent(movie_file)
# create video widget
self.videoWidget = QtMultimediaWidgets.QVideoWidget()
self.setCentralWidget(self.videoWidget)
# media player object (video widget goes in media player)
self.mediaPlayer = QtMultimedia.QMediaPlayer(None,
QtMultimedia.QMediaPlayer.VideoSurface)
self.mediaPlayer.setVideoOutput(self.videoWidget)
# playlist
self.playlist = QtMultimedia.QMediaPlaylist()
self.playlist.setCurrentIndex(0)
self.playlist.setPlaybackMode(QtMultimedia.QMediaPlaylist.Loop)
self.playlist.addMedia(media)
# add content to media player
self.mediaPlayer.setPlaylist(self.playlist)
self.mediaPlayer.play()
命令窗口给我以下错误信息:
DirectShowPlayerService::doSetUrlSource: Unresolved error code 0x80004005 (Unspecified error)
我无法学习足够的谷歌搜索或堆栈溢出来修复它,这是一个真正的挑战,因为我是一个相当新的程序员。
非常感谢尝试的解决方案或想法!
【问题讨论】:
【参考方案1】:已解决
显然,PyQt5 中的 QtMultimedia 依赖于 DirectShowPlayerService,您需要为此安装 DirectShow 解码器,例如 LAV Filters。所以,这实际上是我的机器上的问题,而不是程序的问题。
基本安装 LAV 过滤器解决了我的视频播放问题。 我在谷歌翻译这个中文网站后找到了这个答案: https://blog.csdn.net/Wangguang_/article/details/93312629
LAV 过滤器可在此处找到: https://www.videohelp.com/software/LAV-Filters
【讨论】:
以上是关于PyQt5 (python) GUI 在运行 .exe 后崩溃,未解决的错误代码 0x80004005(未指定的错误)的主要内容,如果未能解决你的问题,请参考以下文章
Python 3.5,单独窗口中的 pyqt5 进度条 gui