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
QT Signals und Slots und Threads und abspielprobleme
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.
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.