Phonon: Difference between revisions
No edit summary |
|||
(55 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
{{Infobox tutorial|time=20 min|distribution=SUSE Linux 11.4|type=Howto|happyreaders=2|unhappyreaders=0}} | |||
= | |||
* ''' | = Introduction = | ||
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. '''This is discussed 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 lets you select a music file and plays it. To change the sound device that is used by default, use the command <tt>systemsettings</tt>. | |||
== 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 == | |||
<pre> | |||
#include <phonon/mediaobject.h> | |||
#include <phonon/audiooutput.h> | |||
#include <QFileDialog> | |||
#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(QFileDialog::getOpenFileName(0,QString("Select a file to play"),QString())); | |||
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" | |||
</pre> | |||
== 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 | |||
[[Category:KDE4]] | [[Category:KDE4]] | ||
[[Category:Phonon]] | [[Category:Phonon]] | ||
[[Category:Tutorial]] |
Revision as of 08:33, 26 September 2011
Time to replay | 20 min |
Example Distro | SUSE Linux 11.4 |
Type | Howto |
Happy readers | 2 |
Unhappy readers | 0 |
Introduction
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. This is discussed 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 lets you select a music file and plays it. 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 <QFileDialog> #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(QFileDialog::getOpenFileName(0,QString("Select a file to play"),QString())); 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