(→Introduction) |
|||
| (57 intermediate revisions by 6 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]] | ||
| Time to replay | 20 min |
| Example Distro | SUSE Linux 11.4 |
| Type | Howto |
| Happy readers | 2 |
| Unhappy readers | 0 |
Contents |
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.