Reputation: 393
I need to play audio from my Qt project deployed on Raspberry Pi. Everything works fine except that I don't get any audio out, instead I get the following error message
defaultServiceProvider::requestService(): no service found for - "org.qt-project.qt.mediaplayer"
After googling around I have come to the conclusion that the problem is that Gstreamer is not installed and recognized by Qt (more precisely gst-omx). Also, I have tried for many days to proper install gst-omx on Raspberry Pi without much luck. Can anyone guide me to how I solve this issue???
One hack would of course just to use an external application to play the audio like mpeg321 and just start it up by QProcess, but I need to control volume and be able to start, stop, and pause, so such a solution is not really feasible...
Upvotes: 1
Views: 2200
Reputation: 976
Short answer: Well man, you found what many people find. Qt won't work with the Raspberry Pi just like that. You might get it to work, but without accelerated decoding it will just run as slow as it can get, and crash every few seconds. Sorry.
Long Answer #1: Qt needs to be compiled with special routines in order to get access to the omx stuff. This is, accessing the dedicated hardware embedded into the board which handles accelerated decoding of the h.264 (an a few others) files.
You have two choices, one is to build a special module from here: Carlon Luca's Github or you get a baked in Raspbian image with everything compiled in place from here: The Bugfree Blog. If you are a newbie on this, building it might give you a very hard time but you will get rather stable code and your choice of Qt and an up to date raspbian. The precompiled image on the other hand is just a matter of download, burn and run, very easy!, but it has some older code, so it has some rough edges and it's a bit unstable (almost every video i've tried shows garbled for the first 2-3 seconds and had crashes from time to time), also you will get Qt 5.1.2 without some of the speedups Qt guys added at 5.2.x.
Long answer #2: There are indeed gst-omx libraries which supposedly work with Qt and supposedly are way more stable, I've never tested them. But you can check for yourself Google: Qt Bellagio, I tried to post the links for them, but had not enough rep. You will have to build your own Qt btw.
Update: If what you need is video playback, i forgot to mention Boot2Qt for the Pi, but you have to pay Digia for the license. It's called Qt Enterprise Embedded, google it.
Upvotes: 2