Seite 1 von 1

Phonon QIODevice Problem

Verfasst: 17. Mai 2010 23:16
von MuFFin
Hallo,
ich arbeite derzeit an einem Projekt bei dem die eigentliche Videodatei erst bei Offset xy anfängt. In der QT Doc steht, dass man dazu QIODevice subclassen soll:

Code: Alles auswählen

/* HEADER */
class M3stream : public QIODevice
{
private:
    //Eigentliche device
    QIODevice*  m_device;
public:
    M3stream( QIODevice* device );
    ~M3stream();

    bool isSequential() { return true; }

protected:
    qint64 readData(char *data, qint64 maxlen);
    qint64 writeData(const char *data, qint64 len);
};

Code: Alles auswählen

/* SOURCE */
M3stream::M3stream(QIODevice *device)
    :m_device(device)
{

}
M3stream::~M3stream()
{

}

qint64 M3stream::readData(char *data, qint64 maxlen)
{
   //Lese einfach von der Original Datei!
    return m_device->read(data,maxlen);
}
qint64 M3stream::writeData(const char *data, qint64 len)
{
    return m_device->write(data,len);
}
Fürn Anfang wär ich schon damit zufrieden wenn er über die Methode eine ganz normale VideoDatei abspielen würde. Leider bleibt das Widget schwarz. Hat ijemand eine Idee was da falsch ist? Muss ich vll noch Signals & Slots connecten?

Der Aufruf

Code: Alles auswählen

QFile file("/home/muffin/Desktop/zeit_2_2 (Kopie).wmv");
         file.open(QFile::ReadOnly);
         M3stream *stream = new M3stream(&file);
         stream->open(QIODevice::ReadOnly);
         mediaObject->setCurrentSource(Phonon::MediaSource(stream));
Lieben Dank schonmal,
MuFFin

Verfasst: 20. Mai 2010 18:53
von Juergen
Hi,

ich bin nicht sicher, weil ich ja selber auch grad erst mit der Nutzung von Phonon begonnen habe, aber muß nicht mindestens ein "play" aufgerufen werden?

Code: Alles auswählen

 mediaObject->play();
Gruß
Juergen

Verfasst: 21. Mai 2010 00:22
von MuFFin
Hey, ja gut, das play() hab ich vergessen, aber an dem liegts ja auch nicht ;-)
Hab aber inzwischen mitbekommen, dass Phonon für solche Sachen noch zu unausgereift is, werd das ganze Projekt wohl noch ein bisschen vertragen oder mir bei Zeiten ein anderes Framework zu gemüte führen.