Seite 1 von 1

phonon; song abspielen

Verfasst: 6. Dezember 2009 14:46
von energetic
Hi,
ich wollte jetzt mal ein bisschen mit phonon arbeiten und so zum Test wollte ich einfach mal ein Programm schreiben das einfach ein Lied abspielt.
Leicht gesagt - schwer getan. Es ist zum verrückt werden :x
Ich hab keine Ahnung, ob ich phonon richtig installiert habe, aber es sollte bei Qt doch eigentlich dabei sein. Erstmal mein Code:

Code: Alles auswählen

#include <phonon/audiooutput.h>
#include <phonon/path.h>
#include <phonon/mediaobject.h>
#include <QCoreApplication>

int main(int argc, char** argv)
{
    QCoreApplication app(argc, argv);
    app.setApplicationName("test");
    Phonon::MediaObject *music = Phonon::createPlayer(Phonon::MusicCategory,
                                                                                         Phonon::MediaSource(argv[1]));
    music->play();

    return app.exec();

}
Was ich auch nicht so ganz verstehe, ist wie phonon inkludiert wird. Manchmal seh ich es groß manchmal klein geschrieben. Mit .h oder ohne? Oder einfach nur #include<phonon> hab ich auch schon gesehen.

jetzt noch die .pro-Datei

Code: Alles auswählen

TEMPLATE = app
TARGET = 
DEPENDPATH += .
INCLUDEPATH += .
Qt += phonon

# Input
SOURCES += test.cpp
Dann qmake und make... tja. Kompilieren geht, Linker errors gibts ne menge, aber ich versteh einfach net warum :?: Ich hasse Linker errors :twisted:

Code: Alles auswählen

test.cpp:(.text+0x22): undefined reference to `Phonon::MediaSource::MediaSource(QString const&)'
test.cpp:(.text+0x2f): undefined reference to `Phonon::createPlayer(Phonon::Category, Phonon::MediaSource const&)'
test.cpp:(.text+0x3a): undefined reference to `Phonon::MediaSource::~MediaSource()'
test.cpp:(.text+0x5b): undefined reference to `Phonon::MediaObject::play()'
test.cpp:(.text+0x6f): undefined reference to `Phonon::MediaSource::~MediaSource()'
collect2: ld gab 1 als Ende-Status zurück
Was genau mach ich falsch? Leider hab ich noch keine gescheiten tutorials zu phonon gesehen. Die Doku und die Examples ja, aber keine tutorials.

MfG energetic

Verfasst: 6. Dezember 2009 16:05
von franzf
Gib mal etwas mehr Info zu deinem System.
Ist Qt mit phonon gebaut? Oder liefert deine Distribution (wenn du ein Linux hast) phonon über das qt-Paket aus, oder im "Original" von kde?
Ich sitz hier an nem Gentoo und bekomme den gleichen Linker-Error, weil ich qt ohne Phonon gebaut hab, phonon über das separate "media-sound/phonon" kommt. Da kann qmake scheinbar nicht die Phonon-Library finden.
Darum extra im .pro ein LIBS += -lphonon und der error ist weg :)

Verfasst: 7. Dezember 2009 14:14
von energetic
Ah, endlich!
Dummer fehler:
Einfach QT += phonon in die pro-Datei, und zwar groß geschrieben :oops: und noch das gstreamer backend installieren.
Jetzt muss ich mich nur noch ein bisschen in phonon einarbeiten...

MfG energetic