QMediaPlayer Service on Raspberry Pi 3 (Stretch)
-
When I run the player.py (under multimediawidgets) example on my Raspberry Pi (running Stretch) the application launches but pops up a message box stating "Service not available. The QMediaPlayer object does not have a valid service. Please check the media service plugins are installed".
As the application launches without an error on the command line I must have all the dependencies installed so I don't understand what is meant by the media service plugins and I haven't seen any posts on this particular problem.
Any advice would be appreciated
Andrew -
Hi and welcome to devnet,
What version of Qt ?
What version of Qt Creator ?
What Linux distribution ? -
What version of PyQt 5 ?
Did you install all Qt's packages ?What do you get if you start your application with the
QT_DEBUG_PLUGINS
environment variable set to 1 ? -
Ah ok, I'm running the latest version which can be installed using the 'sudo apt-get install' command which is currently 5.7+dfsg-5. My Python3 is version 3.5.3.
I haven't installed all the packages, just:
- the core (installed with : python3-pyqt5) and,
- qtmultimedia (installed with : python3-pyqt5.qtmultimedia)
As the QMediaService is part of QTMultimedia I don't believe I need to install all the extra packages. Just in case, I tried installing all the packages but it didn't make a difference.
Running from the command line I get additional information that thonny (the default Pi IDE) didn't show; without enabling QT_DEBUG_PLUGINS I get the following message:
- libEGL warning: DRI2: failed to authenticate
- qt5ct: using qt5ct plugin
- defaultServiceProvider::requestService(): no service found for - "org.qt-project.qt.mediaplayer"
I then followed the suggestions on the following websites to fix the libEGL warning without success
- https://pi3d.github.io/html/FAQ.html#glx-dri2-not-supported-or-failed-to-authenticate
- https://lb.raspberrypi.org/forums/viewtopic.php?t=194662
When I enabled QT_DEBUG_PLUGINS I got a lot of information, unfortunately I don't have permission to upload text files, so the data dump is below:
QFactoryLoader::QFactoryLoader() checking directory path "/usr/lib/arm-linux-gnueabihf/qt5/plugins/platforms" ...
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/arm-linux-gnueabihf/qt5/plugins/platforms/libqeglfs.so"
Found metadata in lib /usr/lib/arm-linux-gnueabihf/qt5/plugins/platforms/libqeglfs.so, metadata=
{
"IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
"MetaData": {
"Keys": [
"eglfs"
]
},
"className": "QEglFSIntegrationPlugin",
"debug": false,
"version": 329473
}Got keys from plugin meta data ("eglfs")
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/arm-linux-gnueabihf/qt5/plugins/platforms/libqlinuxfb.so"
Found metadata in lib /usr/lib/arm-linux-gnueabihf/qt5/plugins/platforms/libqlinuxfb.so, metadata=
{
"IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
"MetaData": {
"Keys": [
"linuxfb"
]
},
"className": "QLinuxFbIntegrationPlugin",
"debug": false,
"version": 329473
}Got keys from plugin meta data ("linuxfb")
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/arm-linux-gnueabihf/qt5/plugins/platforms/libqminimal.so"
Found metadata in lib /usr/lib/arm-linux-gnueabihf/qt5/plugins/platforms/libqminimal.so, metadata=
{
"IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
"MetaData": {
"Keys": [
"minimal"
]
},
"className": "QMinimalIntegrationPlugin",
"debug": false,
"version": 329473
}Got keys from plugin meta data ("minimal")
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/arm-linux-gnueabihf/qt5/plugins/platforms/libqminimalegl.so"
Found metadata in lib /usr/lib/arm-linux-gnueabihf/qt5/plugins/platforms/libqminimalegl.so, metadata=
{
"IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
"MetaData": {
"Keys": [
"minimalegl"
]
},
"className": "QMinimalEglIntegrationPlugin",
"debug": false,
"version": 329473
}Got keys from plugin meta data ("minimalegl")
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/arm-linux-gnueabihf/qt5/plugins/platforms/libqoffscreen.so"
Found metadata in lib /usr/lib/arm-linux-gnueabihf/qt5/plugins/platforms/libqoffscreen.so, metadata=
{
"IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
"MetaData": {
"Keys": [
"offscreen"
]
},
"className": "QOffscreenIntegrationPlugin",
"debug": false,
"version": 329473
}Got keys from plugin meta data ("offscreen")
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/arm-linux-gnueabihf/qt5/plugins/platforms/libqxcb.so"
Found metadata in lib /usr/lib/arm-linux-gnueabihf/qt5/plugins/platforms/libqxcb.so, metadata=
{
"IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
"MetaData": {
"Keys": [
"xcb"
]
},
"className": "QXcbIntegrationPlugin",
"debug": false,
"version": 329473
}Got keys from plugin meta data ("xcb")
QFactoryLoader::QFactoryLoader() checking directory path "/usr/bin/platforms" ...
loaded library "/usr/lib/arm-linux-gnueabihf/qt5/plugins/platforms/libqxcb.so"
loaded library "Xcursor"
QFactoryLoader::QFactoryLoader() checking directory path "/usr/lib/arm-linux-gnueabihf/qt5/plugins/xcbglintegrations" ...
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/arm-linux-gnueabihf/qt5/plugins/xcbglintegrations/libqxcb-egl-integration.so"
Found metadata in lib /usr/lib/arm-linux-gnueabihf/qt5/plugins/xcbglintegrations/libqxcb-egl-integration.so, metadata=
{
"IID": "org.qt-project.Qt.QPA.Xcb.QXcbGlIntegrationFactoryInterface.5.5",
"MetaData": {
"Keys": [
"xcb_egl"
]
},
"className": "QXcbEglIntegrationPlugin",
"debug": false,
"version": 329473
}Got keys from plugin meta data ("xcb_egl")
QFactoryLoader::QFactoryLoader() checking directory path "/usr/bin/xcbglintegrations" ...
loaded library "/usr/lib/arm-linux-gnueabihf/qt5/plugins/xcbglintegrations/libqxcb-egl-integration.so"
libEGL warning: DRI2: failed to authenticate
QFactoryLoader::QFactoryLoader() checking directory path "/usr/lib/arm-linux-gnueabihf/qt5/plugins/platformthemes" ...
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/arm-linux-gnueabihf/qt5/plugins/platformthemes/libqgtk2.so"
Found metadata in lib /usr/lib/arm-linux-gnueabihf/qt5/plugins/platformthemes/libqgtk2.so, metadata=
{
"IID": "org.qt-project.Qt.QPA.QPlatformThemeFactoryInterface.5.1",
"MetaData": {
"Keys": [
"gtk2"
]
},
"className": "QGtk2ThemePlugin",
"debug": false,
"version": 329473
}Got keys from plugin meta data ("gtk2")
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/arm-linux-gnueabihf/qt5/plugins/platformthemes/libqgtk3.so"
Found metadata in lib /usr/lib/arm-linux-gnueabihf/qt5/plugins/platformthemes/libqgtk3.so, metadata=
{
"IID": "org.qt-project.Qt.QPA.QPlatformThemeFactoryInterface.5.1",
"MetaData": {
"Keys": [
"gtk3"
]
},
"className": "QGtk3ThemePlugin",
"debug": false,
"version": 329473
}Got keys from plugin meta data ("gtk3")
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/arm-linux-gnueabihf/qt5/plugins/platformthemes/libqt5ct.so"
Found metadata in lib /usr/lib/arm-linux-gnueabihf/qt5/plugins/platformthemes/libqt5ct.so, metadata=
{
"IID": "org.qt-project.Qt.QPA.QPlatformThemeFactoryInterface.5.1",
"MetaData": {
"Keys": [
"qt5ct"
]
},
"className": "Qt5CTPlatformThemePlugin",
"debug": false,
"version": 329473
}Got keys from plugin meta data ("qt5ct")
QFactoryLoader::QFactoryLoader() checking directory path "/usr/bin/platformthemes" ...
loaded library "/usr/lib/arm-linux-gnueabihf/qt5/plugins/platformthemes/libqt5ct.so"
qt5ct: using qt5ct plugin
QFactoryLoader::QFactoryLoader() checking directory path "/usr/lib/arm-linux-gnueabihf/qt5/plugins/styles" ...
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/arm-linux-gnueabihf/qt5/plugins/styles/libbb10styleplugin.so"
Found metadata in lib /usr/lib/arm-linux-gnueabihf/qt5/plugins/styles/libbb10styleplugin.so, metadata=
{
"IID": "org.qt-project.Qt.QStyleFactoryInterface",
"MetaData": {
"Keys": [
"bb10bright",
"bb10dark"
]
},
"className": "QBB10StylePlugin",
"debug": false,
"version": 329473
}Got keys from plugin meta data ("bb10bright", "bb10dark")
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/arm-linux-gnueabihf/qt5/plugins/styles/libqcleanlooksstyle.so"
Found metadata in lib /usr/lib/arm-linux-gnueabihf/qt5/plugins/styles/libqcleanlooksstyle.so, metadata=
{
"IID": "org.qt-project.Qt.QStyleFactoryInterface",
"MetaData": {
"Keys": [
"cleanlooks"
]
},
"className": "QCleanlooksStylePlugin",
"debug": false,
"version": 329473
}Got keys from plugin meta data ("cleanlooks")
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/arm-linux-gnueabihf/qt5/plugins/styles/libqgtk2style.so"
Found metadata in lib /usr/lib/arm-linux-gnueabihf/qt5/plugins/styles/libqgtk2style.so, metadata=
{
"IID": "org.qt-project.Qt.QStyleFactoryInterface",
"MetaData": {
"Keys": [
"gtk2"
]
},
"className": "QGtk2StylePlugin",
"debug": false,
"version": 329473
}Got keys from plugin meta data ("gtk2")
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/arm-linux-gnueabihf/qt5/plugins/styles/libqmotifstyle.so"
Found metadata in lib /usr/lib/arm-linux-gnueabihf/qt5/plugins/styles/libqmotifstyle.so, metadata=
{
"IID": "org.qt-project.Qt.QStyleFactoryInterface",
"MetaData": {
"Keys": [
"motif",
"cde"
]
},
"className": "QMotifStylePlugin",
"debug": false,
"version": 329473
}Got keys from plugin meta data ("motif", "cde")
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/arm-linux-gnueabihf/qt5/plugins/styles/libqplastiquestyle.so"
Found metadata in lib /usr/lib/arm-linux-gnueabihf/qt5/plugins/styles/libqplastiquestyle.so, metadata=
{
"IID": "org.qt-project.Qt.QStyleFactoryInterface",
"MetaData": {
"Keys": [
"plastique"
]
},
"className": "QPlastiqueStylePlugin",
"debug": false,
"version": 329473
}Got keys from plugin meta data ("plastique")
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/arm-linux-gnueabihf/qt5/plugins/styles/libqt5ct-style.so"
Found metadata in lib /usr/lib/arm-linux-gnueabihf/qt5/plugins/styles/libqt5ct-style.so, metadata=
{
"IID": "org.qt-project.Qt.QStyleFactoryInterface",
"MetaData": {
"Keys": [
"qt5ct-style"
]
},
"className": "Qt5CTStylePlugin",
"debug": false,
"version": 329473
}Got keys from plugin meta data ("qt5ct-style")
QFactoryLoader::QFactoryLoader() checking directory path "/usr/bin/styles" ...
QFactoryLoader::QFactoryLoader() checking directory path "/usr/lib/arm-linux-gnueabihf/qt5/plugins/platforminputcontexts" ...
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/arm-linux-gnueabihf/qt5/plugins/platforminputcontexts/libcomposeplatforminputcontextplugin.so"
Found metadata in lib /usr/lib/arm-linux-gnueabihf/qt5/plugins/platforminputcontexts/libcomposeplatforminputcontextplugin.so, metadata=
{
"IID": "org.qt-project.Qt.QPlatformInputContextFactoryInterface.5.1",
"MetaData": {
"Keys": [
"compose",
"xim"
]
},
"className": "QComposePlatformInputContextPlugin",
"debug": false,
"version": 329473
}Got keys from plugin meta data ("compose", "xim")
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/arm-linux-gnueabihf/qt5/plugins/platforminputcontexts/libibusplatforminputcontextplugin.so"
Found metadata in lib /usr/lib/arm-linux-gnueabihf/qt5/plugins/platforminputcontexts/libibusplatforminputcontextplugin.so, metadata=
{
"IID": "org.qt-project.Qt.QPlatformInputContextFactoryInterface.5.1",
"MetaData": {
"Keys": [
"ibus"
]
},
"className": "QIbusPlatformInputContextPlugin",
"debug": false,
"version": 329473
}Got keys from plugin meta data ("ibus")
QFactoryLoader::QFactoryLoader() checking directory path "/usr/bin/platforminputcontexts" ...
loaded library "/usr/lib/arm-linux-gnueabihf/qt5/plugins/platforminputcontexts/libcomposeplatforminputcontextplugin.so"
loaded library "/usr/lib/arm-linux-gnueabihf/qt5/plugins/styles/libqt5ct-style.so"
loaded library "/usr/lib/arm-linux-gnueabihf/qt5/plugins/styles/libqgtk2style.so"
loaded library "gtk-x11-2.0"
QFactoryLoader::QFactoryLoader() checking directory path "/usr/lib/arm-linux-gnueabihf/qt5/plugins/mediaservice" ...
QFactoryLoader::QFactoryLoader() checking directory path "/usr/bin/mediaservice" ...
defaultServiceProvider::requestService(): no service found for - "org.qt-project.qt.mediaplayer"
QFactoryLoader::QFactoryLoader() checking directory path "/usr/lib/arm-linux-gnueabihf/qt5/plugins/bearer" ...
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/arm-linux-gnueabihf/qt5/plugins/bearer/libqconnmanbearer.so"
Found metadata in lib /usr/lib/arm-linux-gnueabihf/qt5/plugins/bearer/libqconnmanbearer.so, metadata=
{
"IID": "org.qt-project.Qt.QBearerEngineFactoryInterface",
"MetaData": {
"Keys": [
"connman"
]
},
"className": "QConnmanEnginePlugin",
"debug": false,
"version": 329473
}Got keys from plugin meta data ("connman")
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/arm-linux-gnueabihf/qt5/plugins/bearer/libqgenericbearer.so"
Found metadata in lib /usr/lib/arm-linux-gnueabihf/qt5/plugins/bearer/libqgenericbearer.so, metadata=
{
"IID": "org.qt-project.Qt.QBearerEngineFactoryInterface",
"MetaData": {
"Keys": [
"generic"
]
},
"className": "QGenericEnginePlugin",
"debug": false,
"version": 329473
}Got keys from plugin meta data ("generic")
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/arm-linux-gnueabihf/qt5/plugins/bearer/libqnmbearer.so"
Found metadata in lib /usr/lib/arm-linux-gnueabihf/qt5/plugins/bearer/libqnmbearer.so, metadata=
{
"IID": "org.qt-project.Qt.QBearerEngineFactoryInterface",
"MetaData": {
"Keys": [
"networkmanager"
]
},
"className": "QNetworkManagerEnginePlugin",
"debug": false,
"version": 329473
}Got keys from plugin meta data ("networkmanager")
QFactoryLoader::QFactoryLoader() checking directory path "/usr/bin/bearer" ...
loaded library "/usr/lib/arm-linux-gnueabihf/qt5/plugins/bearer/libqconnmanbearer.so"
loaded library "/usr/lib/arm-linux-gnueabihf/qt5/plugins/bearer/libqgenericbearer.so"
loaded library "/usr/lib/arm-linux-gnueabihf/qt5/plugins/bearer/libqnmbearer.so"
QFactoryLoader::QFactoryLoader() checking directory path "/usr/lib/arm-linux-gnueabihf/qt5/plugins/iconengines" ...
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/arm-linux-gnueabihf/qt5/plugins/iconengines/libqsvgicon.so"
Found metadata in lib /usr/lib/arm-linux-gnueabihf/qt5/plugins/iconengines/libqsvgicon.so, metadata=
{
"IID": "org.qt-project.Qt.QIconEngineFactoryInterface",
"MetaData": {
"Keys": [
"svg",
"svgz",
"svg.gz"
]
},
"className": "QSvgIconPlugin",
"debug": false,
"version": 329473
}Got keys from plugin meta data ("svg", "svgz", "svg.gz")
QFactoryLoader::QFactoryLoader() checking directory path "/usr/bin/iconengines" ... -
I don't see any entry regarding the Qt Multimedia module.
-
For you to debug with just only QtMultimedia set this variable environment:
export QT_LOGGING_RULES=qt.multimedia.*=true
Why you not use PySide2? It practical and efficient install with virtualenv and pip3.
I belive there are missing libraries as Gstreamer, in this case.
Cleiton Bueno