Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

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


  • Lifetime Qt Champion

    Hi and welcome to devnet,

    What version of Qt ?
    What version of Qt Creator ?
    What Linux distribution ?



  • @SGaist I'm using PyQt5, not using QT Creator and, as mentioned above, I'm using Raspbian Stretch.


  • Lifetime Qt Champion

    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

    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" ...


  • Lifetime Qt Champion

    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

    Blog | Linkedin | B2Open


Log in to reply