Linux上PyQt5 QMultimedia的分段错误

问题描述 投票:4回答:1

我正在Ubuntu 18.04.3 LTS上使用PyQt5。我正在尝试使用QtMultimedia.QMediaPlayer播放.mp3文件。这是我的代码:

import sys

from PyQt5 import QtCore, QtMultimedia
from PyQt5.QtWidgets import QApplication, QMainWindow


class MyWidget(QMainWindow):
    def __init__(self):
        super().__init__()
        media = QtCore.QUrl.fromLocalFile(sys.path[0] + '/sounds/banjo_A5_forte_normal.mp3')
        content = QtMultimedia.QMediaContent(media)
        self.player = QtMultimedia.QMediaPlayer()
        self.player.setMedia(content)
        self.player.play()


app = QApplication(sys.argv)
ex = MyWidget()
ex.show()
sys.exit(app.exec_())

但是我运行它时得到SIGSEGV。

当我在PyCharm中调试时,将断点设置为self.player = QtMultimedia.QMediaPlayer()并恢复程序,它可以工作,但会发出警告:

(python:12491): GStreamer-WARNING **: 17:53:39.905: Failed to load plugin '/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstvaapi.so': /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstvaapi.so: undefined symbol: gst_gl_display_egl_get_from_native

(python:12491): GStreamer-WARNING **: 17:53:40.030: Failed to load plugin '/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstvaapi.so': /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstvaapi.so: undefined symbol: gst_gl_display_egl_get_from_native
python linux pyqt pyqt5 gstreamer
1个回答
0
投票

我使用以下命令在docker(ubuntu:18.04)中启用Qt MultiMedia,因此我想它也应该为您服务。

sudo apt-get install -y --no-install-recommends \
        libgstreamer1.0-0 \
        gstreamer1.0-plugins-base \
        gstreamer1.0-plugins-good \
        gstreamer1.0-plugins-bad \
        gstreamer1.0-plugins-ugly \
        gstreamer1.0-libav \
        gstreamer1.0-doc \
        gstreamer1.0-tools \
        libpulse-mainloop-glib0 \
        alsa-base \
        alsa-utils \
        pulseaudio
© www.soinside.com 2019 - 2024. All rights reserved.