Phonon
Appearance
Time to replay | 20 min |
Example Distro | SUSE Linux 11.3 |
Type | Howto |
Happy readers | 2 |
Unhappy readers | 0 |
Introduction
The following is based on the documentation available here.
By getting involved with Phonon, you can choose between three different main tasks.
- Using the Phonon API, which allows you to develop your own multimedia application. Start here.
- Hacking the Phonon library.
- Writing Phonon backend, this consists in writing interfaces that allows Phonon to use different sound/video engine. This usually requires good skills and knowledge of the engine you interface with.
Using the phonon API
The following example is taken from englishbreakfastnetwork. It plays /tmp/example.wav. To change the sound device that is used by default, use the command systemsettings.
CMakeLists.txt
You need a file CMakeLists.txt to compile the software later:
project (tutorial2) find_package(KDE4 REQUIRED) include (KDE4Defaults) include_directories(${KDE4_INCLUDES}) set(tutorial1_SRCS main.cpp) kde4_add_executable(tutorial2 ${tutorial1_SRCS}) target_link_libraries(tutorial2 ${KDE4_KDEUI_LIBS} phonon) install(TARGETS tutorial2 ${INSTALL_TARGETS_DEFAULT_ARGS})
main.cpp
#include <phonon/mediaobject.h> #include <phonon/audiooutput.h> #include <QtGui/QApplication> #include <QtGui/QMainWindow> #include <QUrl> class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow(); }; MainWindow::MainWindow() { Phonon::MediaObject* media = new Phonon::MediaObject(this); Phonon::createPath(media, new Phonon::AudioOutput(Phonon::MusicCategory, this)); media->setCurrentSource(QUrl("/tmp/example.wav")); media->play(); } int main(int argc, char **argv) { QApplication app(argc, argv); QApplication::setApplicationName("Phonon Tutorial 2"); MainWindow mw; mw.show(); return app.exec(); } #include "main.moc"
Compile and run it
cmake . && make && ./tutorial2
Getting more help
To talk among phonon experts, point your irc client to the server irc.freenode.org, channel #phonon.
See also
- Development/Tutorials/Phonon/Introduction/Python - same example in Python