我正在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
我使用以下命令在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