(doing something against weird spacing as discussed in chat with valorie) |
(→Introduction) |
||
(9 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
− | {{Infobox tutorial|time=20 min|distribution=SUSE Linux 11. | + | {{Infobox tutorial|time=20 min|distribution=SUSE Linux 11.4|type=Howto|happyreaders=2|unhappyreaders=0}} |
= Introduction = | = Introduction = | ||
− | |||
− | |||
− | |||
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. | + | * '''Using the Phonon API''', which allows you to develop your own multimedia application. '''This is discussed 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. | ||
− | |||
− | |||
= Using the phonon API = | = Using the phonon API = | ||
− | The following example | + | 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 == | == CMakeLists.txt == | ||
You need a file CMakeLists.txt to compile the software later: | You need a file CMakeLists.txt to compile the software later: | ||
− | |||
project (tutorial2) | project (tutorial2) | ||
find_package(KDE4 REQUIRED) | find_package(KDE4 REQUIRED) | ||
include (KDE4Defaults) | include (KDE4Defaults) | ||
include_directories(${KDE4_INCLUDES}) | include_directories(${KDE4_INCLUDES}) | ||
− | set(tutorial1_SRCS | + | set(tutorial1_SRCS main.cpp) |
kde4_add_executable(tutorial2 ${tutorial1_SRCS}) | kde4_add_executable(tutorial2 ${tutorial1_SRCS}) | ||
target_link_libraries(tutorial2 ${KDE4_KDEUI_LIBS} phonon) | target_link_libraries(tutorial2 ${KDE4_KDEUI_LIBS} phonon) | ||
install(TARGETS tutorial2 ${INSTALL_TARGETS_DEFAULT_ARGS}) | install(TARGETS tutorial2 ${INSTALL_TARGETS_DEFAULT_ARGS}) | ||
− | == | + | == main.cpp == |
<pre> | <pre> | ||
#include <phonon/mediaobject.h> | #include <phonon/mediaobject.h> | ||
#include <phonon/audiooutput.h> | #include <phonon/audiooutput.h> | ||
+ | #include <QFileDialog> | ||
#include <QtGui/QApplication> | #include <QtGui/QApplication> | ||
#include <QtGui/QMainWindow> | #include <QtGui/QMainWindow> | ||
Line 48: | Line 43: | ||
{ | { | ||
Phonon::MediaObject* media = new Phonon::MediaObject(this); | Phonon::MediaObject* media = new Phonon::MediaObject(this); | ||
− | createPath(media, new Phonon::AudioOutput(Phonon::MusicCategory, this)); | + | Phonon::createPath(media, new Phonon::AudioOutput(Phonon::MusicCategory, this)); |
− | media->setCurrentSource( | + | media->setCurrentSource(QFileDialog::getOpenFileName(0,QString("Select a file to play"),QString())); |
media->play(); | media->play(); | ||
} | } | ||
Line 62: | Line 57: | ||
} | } | ||
− | #include " | + | #include "main.moc" |
</pre> | </pre> | ||
Time to replay | 20 min |
Example Distro | SUSE Linux 11.4 |
Type | Howto |
Happy readers | 2 |
Unhappy readers | 0 |
By getting involved with Phonon, you can choose between three different main tasks.
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.
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})
#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"
cmake . && make && ./tutorial2
To talk among phonon experts, point your irc client to the server irc.freenode.org, channel #phonon.