TeamViewer Motive 4

C# [XNA] MP3 Player hängt sich auf

locomarco

Commander
Registriert
Aug. 2009
Beiträge
2.446
Hi, ich hab da zwei kleine Probleme mit meinem MP3 Player.

Wenn das Programm nicht im Debugger unter vshost.exe läuft hängt sich das UI, kurz nachdem das Programm den Fokus verliert, auf. Das könnt ihr hier sehen:

http://www.youtube.com/watch?v=cw7o_d2D_cQ

Das zweite Problem ist, dass sich das Programm sporadisch beim Lied wechseln komplett aufhängt, auch beim Debuggen. Es wird allerdings keine Exception geworfen. Also weiß ich auch hier nicht wo der Fehler liegt.

Den gesamten Code könnt ihr euch hier ansehen: http://pastebin.com/DJbj40Yi (unkommentiert und unaufgeräumt)
 
Ich würde dir gerne helfen, aber Youtube ist gerade total im Eimer. ^^
 
Ich merks auch grade, die haben wohl mehr als ein Problem mit den Blogs (siehe News).
 
Hmm ich kann nur mutmaßen, aber entweder läuft irgend n Cache voll womit er net klar kommt oder aber beim Focus Event geht irgendwas schief. Ich würde an deiner stelle mal n globales Try-Catch Konstrukt bauen und schauen ob man an ne konkrete Exception rankommt. Sollte es wirklich am Focus liegen wäre es ne überlegung wert das Focusevent des Rahmenprogramms abzufangen und dort die XNA Komponenten neu zu initialisieren.

Just my two cents ...
 
Binde mal die Musik manuell ein, also ohne eine MediaLibrary. Evtl. liegt es an den einzelnen Songs. (Also ich rede vom 2. Problem)
 
Zuletzt bearbeitet:
@NetCrack: Try-Catch hab ich schon probiert, bringt aber auch nichts.

@derlolomat: Soll ich die Songs als Content einbinden oder wie? Wäre ja etwas unvorteilhaft.
 
Nur testweise, damit du die Songs einzeln durchtesten kannst. Und damit du die Medialibrary ausschließen kannst.
 
Ich bin jetzt um die Uhrzeit leider nicht mehr ganz so schnell, aber ich denke du solltest mal nen try-catch in protected override void Draw(GameTime gameTime) versuchen.

Code:
try
 {
    //todo
 }
catch (Exception ex)
 {
    MessageBox.Show(ex.Message);            
  }

So sollte man zumindest einen Ansatz bekommen (zur not halt über die ganze Klasse legen ;))
Wenn nichts kommt ist wenigstens an anderer Stelle ein Fehler.

Ein switch, ggf ne Zusätzliche Funktion hätten dem Code aber wenigstens nen bissel mehr Übersicht verliehen... :evillol: ... aber direkt nen Fehler (den ich bemerken könnte) habe ich nicht gefunden... (dabei sind mir allerdings nicht alle Methoden bekannt die du verwendet hast)
 
Hi,

Try-Catch hab ich schon probiert, bringt aber auch nichts.

Was heisst das? Wird keine Exception geworfen? Oder verstehst du sie nicht? Bitte deutlicher.

Hast du mal versucht mehrere Threads zu machen? Einen separaten für die GUI und nicht alles im gleichen Thread?

Und wieso eigentlich einen MP3 Player mit XNA? Wieso nicht mit WPF? XNA ist eigentlich nicht dafür gedacht sondern eher für die Spieleentwicklung.


VG,
Mad
 
PapstRatze schrieb:
ich denke du solltest mal nen try-catch in protected override void Draw(GameTime gameTime) versuchen.
Ich hatte Try-Catch in Update() und Draw() gepackt, es wird keine Exception geworfen.

hätten dem Code aber wenigstens nen bissel mehr Übersicht verliehen... :evillol:
:D

Madman1209 schrieb:
Was heisst das? Wird keine Exception geworfen?
Es wird keine Exception geworfen.

Hast du mal versucht mehrere Threads zu machen? Einen separaten für die GUI und nicht alles im gleichen Thread?
Hab ich noch nich probiert, werds aber mal versuchen.

Und wieso eigentlich einen MP3 Player mit XNA? Wieso nicht mit WPF? XNA ist eigentlich nicht dafür gedacht sondern eher für die Spieleentwicklung.
Ich wollte ursprünglich nur ein bisschen mit VisualizationData rumspielen. Mit WPF hätte ich da ja die Bass.dll (oder ähnliches) nehmen müssen. Nur blick ich da nich so ganz durch.
 
derlolomat schrieb:
Binde mal die Musik manuell ein, also ohne eine MediaLibrary. Evtl. liegt es an den einzelnen Songs. (Also ich rede vom 2. Problem)

Habs jetzt mal ausprobiert, das behebt gleich beide Probleme :freak:
 
Zuletzt bearbeitet: (Sry, wegen Doppelpost ...)
Geht es dann mit ALLEN Songs?
Ich glaube nämlich nicht, dass die Medialibrary SO verbuggt ist. Ich bin mir sicher, dass Bug 2 zumindest von einzelnen Songs verursacht wird.

Dass durch den Medialibrary-Weg allerdings auch der erste Bug verursacht wird, ist sehr komisch. Nach der Ursache würde ich an deiner Stelle explizit in einem XNA-Forum fragen. Evtl. ist das ein Bug des Frameworks und nicht deines Programmes.
 
Zuletzt bearbeitet:
derlolomat schrieb:
Geht es dann mit ALLEN Songs?
Ich habs mit 10 Songs probiert. Bis alle 150 Songs im Content sind vergehen ja Ewigkeiten ... Werds dann aber vllt. noch probieren.

Nach der Ursache würde ich an deiner Stelle explizit in einem XNA-Forum fragen.
Werd ich bei Gelegenheit mal machen.

EDIT:
Hab jetzt alle 150 Songs in den Content gepackt und das Programm funktioniert problemlos ...
Muss wohl ein Problem in der MediaLibrary sein.

EDIT2:
Das Problem liegt auch an bestimmten Songs, wie du schon vermutet hast. Das Programm bleibt zb. immer beim Wechsel auf Lied 92 oder 93 hängen.
Jetzt bleibt die Frage warum das nur in der MediaLibrary passiert.
 
Zuletzt bearbeitet:
Der einzige Unterschied sind Dateiname und ID3 Tag.
Bin grad dabei mit der bass.dll ein Player in WPF zu basteln, werd für das Projekt also nichts großartiges mehr unternehmen.

Danke für eure Hilfe :)
 
Wofür bass.dll? WPF hat doch schon das MediaElement...
 
Hi,

habe mit dem MediaElement noch nicht gearbeitet, aber hast du das hier schon gefunden? Spetrum Analyzer, WPF, Open Source.

VG,
Mad
 
Hast du vorher nie erwähnt das du so etwas brauchst, insofern...
 
Zurück
Oben