Fade out sound
I have been a Qt developer for 5 years and C++ for developer for 12 years but never really did any audio programming. For a big project I am working on 2 multitouch applications. One of which needs basic audio support, looping an audio file, being able to stop it at any time with a fadeout. I was hoping to use Phonon for this but it doesn’t seem to work with Mingw. Since I want to use the same Qt SDK for both apps and I already finished the other app using Mingw, I am a bit puzzled how to get the audio working without setting up a separate Visual C++ environment for the second app.
I looked at Qt multimedia classes, this could be an option, but I found no support for fade out. Any suggestions? I have limited time on this but the audio support I need is so simple, yet trivial part of the app experience.
I’m having problems getting Qt Mobility to work. First I thought it was because I was using Qt SDK 2010.05. So I installed the latest SDK (1.1.2) from http://qt.nokia.com/downloads/. Which claims to contain Qt Mobility version 1.1.3. However after installing I created a simple app from Qt documentation using QMediaPlayer, see http://doc.qt.nokia.com/qtmobility-1.1.3/quickstart.html.
If I try to compile it complains about the following:
#include <QMediaPlayer> main.cpp:2:24: error: QMediaPlayer: No such file or directory
QTM_USE_NAMESPACE main.cpp:6: error: expected constructor, destructor, or type conversion before ‘int’
I must be missing out on something. Should I build Qt Mobility myself. I even can’t seem to find the source files for it in the SDK directories :-s
It does contain it. The create project wizard even supports creating a mobile project. Which still feels weird since I am targeting a 52” inch desktop environment ;-)
This is the .pro file created (and my changes):
- # Add files and directories to ship with the application
- # by adapting the examples below.
- # file1.source = myfile
- # dir1.source = mydir
- # DEPLOYMENTFOLDERS = # file1 dir1
- # symbian:TARGET.UID3 = 0xE80DF1B4
- # Smart Installer package's UID
- # This UID is from the protected range
- # and therefore the package will fail to install if self-signed
- # By default qmake uses the unprotected range value if unprotected UID is defined for the application
- # and 0x2002CCCF value if protected UID is given to the application
- #symbian:DEPLOYMENT.installer_header = 0x2002CCCF
- # Allow network access on Symbian
- # symbian:TARGET.CAPABILITY += NetworkServices
- # If your application uses the Qt Mobility libraries, uncomment
- # the following lines and add the respective components to the
- # MOBILITY variable.
- CONFIG += mobility
- MOBILITY += multimedia
- SOURCES += main.cpp mainwindow.cpp
- HEADERS += mainwindow.h
- FORMS += mainwindow.ui
- # Please do not modify the following two lines. Required for deployment.
- # include(deployment.pri)
- # qtcAddDeployment()
And here is my main.cpp:
- #include "mainwindow.h"
- #include <QApplication>
- #include <QMediaPlayer>
- int main(int argc, char *argv)
- QApplication app(argc, argv);
- MainWindow mainWindow;
- return app.exec();
And it does not compile for previous posted reasons!
Yes, QtM appears to be missing. But when I go this url it says QtM is part of the SDK:
That’s also claimed on this page, from where I downloaded and installed the SDK:
Check these screenshots from my system for more details: