QT Signals und Slots und Threads und abspielprobleme

Alles rund um die Programmierung mit Qt
Antworten
Harrold
Beiträge: 3
Registriert: 28. Juli 2006 12:40

QT Signals und Slots und Threads und abspielprobleme

Beitrag von Harrold »

Ich würd gern eine Sounddatei aus einer Playliste über ein Signal abspielen. Nur komm ich da jetzt nicht mehr so ganz weiter. DAs Programm bricht nicht ab, spielt aber auch keine Sounddatei ab. Eine Fehlermeldung gibt es auch nicht.

Wenn ich aus playOGG() das "const QString&" rausnehme, funktioniert alles, aber dann ohne Threads und ich kann im Programm nichts weiter ausführen, bis die Datei fertig abgespielt hat.

Dann kann ich in die Playliste zwar 100 Dateien einfügen, aber es wird immer die zuletzt eingefügte Datei abgespielt.

Beispiel:
1.ogg
2.ogg
3.ogg

Ich hab jetzt die 3 ogg files eingefügt, aber nur die 3.ogg die als letztes eingefügt wurde, wird abgespielt. Egal ob ich auf 1.ogg oder auf 2.ogg klicke.

Hab für euch mal alle Dateien hochgeladen, da es doch etwas zuviel Code ist.
Danke schon im Vorraus für die Hilfe!

medicplayer.cpp
medicplayer.h
thread.cpp
thread.h
OscarWild
Beiträge: 54
Registriert: 19. Juni 2006 19:59

Beitrag von OscarWild »

Was sollte die Klasse Thread in Deinem Fall genau machen? Aktuell instanziert sie in der run-Methode ein lokales mediaGui-Objekt auf dem Stack, verbindet das Signal fileSelected (das sie selbst emittieren müsste) mit einem Slot des mediaGui-Objekts, das anschließend automatisch wieder zerstört wird.

mediaGui::playOGG() Instanziert ein Thread-Objekt (das seinerseits wie oben beschrieben temporär ein eigenes mediaGui-Objekt instanziert), und verbindet ein Signal mit einem Slot fileSelected( const QString& ), den die Klasse Thread gar nicht besitzt...

mediaGui::openOGG() erzeugt ein lokales Thread-Objekt namens thread, das das Klassenmember mediaGui::thread verdeckt...

Nix für ungut, aber der Code sieht insgesamt *etwas* konfus aus.
Harrold
Beiträge: 3
Registriert: 28. Juli 2006 12:40

Beitrag von Harrold »

Ja der Code sieht etwas konfus aus. Werd den mal ordnen müssen und überhaupt. Habs aber hinbekommen. Kann geclosed werden :)
Antworten