October 28, 2010

sleam sleam
Lab Rat
39 posts

N900 and QMediaPlayer

 

I got this bit of code that I run on a N900 with PR1.3 Qt4.7 Mobility 1.0.2

  1.         QMediaPlayer *player = new QMediaPlayer;
  2.         player->setMedia(QUrl::fromLocalFile("ballhit.wav"));
  3.         player->setVolume(50);
  4.         player->play();

When I run it, this happends:

GStreamer; Unable to play – “file:ballhit.wav”

I think that it may not find the file, I have tried many different methods of adding the wav file to my project, but none seems to work, I don’t know what is the best approach.
If i replace “ballhit.wav” with for example: “Http://tst.com/b.wav”, it works, no problem.
But I can’t load my sound files from the web, I want them on the device.

Developing on windows with Qt Creator.

Please help me :)

13 replies

October 28, 2010

Denis Kormalev Denis Kormalev
Lab Rat
1654 posts

have you tried absolute path instead of relative? maybe your file is in wrong dir?

October 28, 2010

sleam sleam
Lab Rat
39 posts

I don’t know the absolute path, I hope this can work with the relative path so it will work on other platforms as well… Anyway, what will my absolute path be?

I think I need some step by step guide here, cause I feel like I have tried it all.. :(

Thank you for your replay :)

October 28, 2010

Denis Kormalev Denis Kormalev
Lab Rat
1654 posts

Then at first try to discover is this relative path valid (QFile or QFileInfo will help you).

October 28, 2010

sleam sleam
Lab Rat
39 posts

Great tip, thank you :)

I did this:

  1. fi.setFile("ballhit.wav");
  2. bool tst = fi.isFile();

fi.isFile() returned false..

What now?

October 28, 2010

Denis Kormalev Denis Kormalev
Lab Rat
1654 posts

Now you should investigate what relative path you should give for your file to find it. If you will provide more info about source of this file, how do you receive its name and other related things then it will be easier to help you.

October 28, 2010

sleam sleam
Lab Rat
39 posts

Okay, I have done the following:

In the same folder as src.pro i got ballhit.wav, and in src.pro i added this:

OTHER_FILES += ballhit.wav

target.path = $$DESTDIR
target.files += ballhit.wav
INSTALLS += target

I have also added a build step: “make install”

I have also included it on my resource file, but this does not seem to work(?)

October 28, 2010

kkrzewniak kkrzewniak
Lab Rat
218 posts

As far as I know playing sound from resources is not supported, at least not with QSound.

From the documentation:
Note that QSound does not support resources. This might be fixed in a future Qt version.

 Signature 

Me, Grimlock, not “nice dino”. ME BASH BRAINS!

October 28, 2010

Denis Kormalev Denis Kormalev
Lab Rat
1654 posts

for using files from resources you need to add “:/” or “qrc:/” to your filename. But not aware about playing sound from resources (simply never tried)

October 28, 2010

sleam sleam
Lab Rat
39 posts

I know that QSound does not support resources, so I really didn’t bother too much about the resources, but I did try to use :/ and qrc://, did not work..

October 29, 2010

sleam sleam
Lab Rat
39 posts

I have found the path of the executable to be: “/usr/local/bin/” but there is no “ballhit.wav” in that dir.

October 29, 2010

sleam sleam
Lab Rat
39 posts

I did a “find . -name “ballhit.wav”“ with root and found nothing on the phone.
So, the file has not been copied ?
How can I ensure the file is copied and installed with the executable?

October 29, 2010

sleam sleam
Lab Rat
39 posts

Problem solved!
Solution: http://talk.maemo.org/showpost.php?p=855984&postcount=9 [talk.maemo.org]

I hope Qt will find a better way to handle this…

April 3, 2011

Pavel Mazniker Pavel Mazniker
Lab Rat
175 posts

Hello,
And how to play the sound in loops ( indefinitly ) using QMediaPlayer as in QSound?
Is it possible using QtMobility classes?
Thanks.

 
  ‹‹ Qt Mobility and GStreamer Photography      [MERGED] Qt-lighthouse ››

You must log in to post a reply. Not a member yet? Register here!