Phonon: Difference between revisions

From KDE TechBase
(doing something against weird spacing as discussed in chat with valorie)
Line 2: Line 2:


= Introduction =
= Introduction =
The following is based on the documentation available here
The following is based on the documentation available [http://www.englishbreakfastnetwork.org/apidocs/apidox-kde-4.0/kdelibs-apidocs/phonon/html/index.html here].
[http://www.englishbreakfastnetwork.org/apidocs/apidox-kde-4.0/kdelibs-apidocs/phonon/html/index.html Phonon API].


By getting involved with Phonon, you can choose between three different main tasks.
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. In fact any application which needs sound can take benefits from the phonon API.
* '''Using the Phonon API''', which allows you to develop your own multimedia application. '''Start here.'''


* '''Hacking the Phonon library'''.
* '''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.
* '''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.
Beginners will probably be more interested by the first task.


= Using the phonon API =
= Using the phonon API =

Revision as of 03:24, 18 September 2010


Tutorial Factbox
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:

CMakeLists.txt
project (tutorial2)
find_package(KDE4 REQUIRED)
include (KDE4Defaults)
include_directories(${KDE4_INCLUDES})
set(tutorial1_SRCS tutorial2.cpp)
kde4_add_executable(tutorial2 ${tutorial1_SRCS})
target_link_libraries(tutorial2 ${KDE4_KDEUI_LIBS} phonon)
install(TARGETS tutorial2  ${INSTALL_TARGETS_DEFAULT_ARGS})

tutorial2.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);
    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 "tutorial2.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