AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Anwendung stuerzt ab bei MediaPlayer.open
Thema durchsuchen
Ansicht
Themen-Optionen

Anwendung stuerzt ab bei MediaPlayer.open

Ein Thema von AnCorr · begonnen am 14. Mai 2010 · letzter Beitrag vom 15. Mai 2010
Antwort Antwort
AnCorr

Registriert seit: 15. Mär 2010
45 Beiträge
 
#1

Anwendung stuerzt ab bei MediaPlayer.open

  Alt 14. Mai 2010, 19:08
Hallo zusammen

Ich programmiere meinen 'eigenen' Mp3 Player.
Lief (laeuft) auch alles wunderbar, bis ich heute eine ganz bestimmte Datei abspielen wollte.
Unmittelbar nach dem 'open' stuerzte das Programm ab.
Ich habe den open Befehl in eine try...except...end Konstruktion gesetzt, damit ich den Fehler abfangen kann.
Ausserhalb der IDE (Delphi 2010) funktioniert das, aber innerhalb der IDE beim Debuggen wird das Programm an der Stelle sofort beendet und kehrt auf die IDE zurueck.

Code:
Delphi-Quellcode:
  Mainform.Mpl_Mainform.FileName := Mp3File;
  try
    Mainform.Mpl_Mainform.Open;
  except
    on E:Exception do
      Application.MessageBox(PWideChar('Error opening Mp3 file ' + Mp3File + '!' + chr(10) +
        E.Message),
        'Mp3Player NG - Open Mp3 file for playing', mb_Ok);
  end;

Ich wuesste nicht, wie ich einen auftretenden Fehler anders abfangen sollte.
Wenn der Fehler auftritt wenn ich mehrere Dateien in eine 'Playliste' laden will, gibt er diese Fehlermeldung ununterbrochen aus. Ich muss das Programm dann ueber den Taskmanager beenden.
Da ich innerhalb der IDE an der Stelle nicht weiterkomme, weiss ich auch nicht, warum die Fehlermeldung andauernd kommmt, und auch keine weiteren Dateien in die 'Playliste' aufgenommen werden. Stattdessen 'versucht' das Programm immer wieder die gleiche Datei zu laden. Das sieht in meinen Augen dann so aus, also ob er die Zaehlervariable der Schleife zum Einlesen der Dateien nicht hochzaehlen kann.

Code:
Delphi-Quellcode:
for i := 0 to Odlg_MediaMgmt.Files.Count - 1 do
begin
  FillLists(Odlg_MediaMgmt.Files[i]);
end;
Aber das eigentliche Problem ist, dass im Debugmodus in der IDE das Programm einfach beendet wird, obwohl ich einen try...except...end Block verwende.

Koennt ihr mir hier weiterhelfen?

Danke im voraus!

Gruss
AnCorr
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.056 Beiträge
 
Delphi 12 Athens
 
#2

Re: Anwendung stuerzt ab bei MediaPlayer.open

  Alt 14. Mai 2010, 19:17
Zitat:
wird das Programm an der Stelle sofort beendet und kehrt auf die IDE zurueck.
Sicher, daß es nicht nur angehalten und die IDE angezeigt wird?


Der Debugger hält nunmal bei Exceptions an, damit man diese Auswerten kann,
aber man kann dennoch weiterarbeiten (z.B. F9 oder F7/F8).

PS: Man kann dem Debugger sagen, daß er bestimmte Exceptions ignorieren soll ... in der Debuggermeldung sollte in D2010 eine entsprechende Checkbox enthalten sein.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
AnCorr

Registriert seit: 15. Mär 2010
45 Beiträge
 
#3

Re: Anwendung stuerzt ab bei MediaPlayer.open

  Alt 14. Mai 2010, 19:29
Hallo

Danke fuer die schnelle Antwort.

Ja, ich bin mir sicher, dass das Programm komplett 'beendet' wird.
Die IDE haelt nicht an, damit ich auf 'irgendwelche' Variablen etc. zugreifen kann.
Ich befinde mich dann direkt im Editiermodus.

Ich moechte diese Exception auch nicht ignorieren, da ich ja gerne wissen wuerde, warum ich an der Stelle nicht richtig debuggen kann.

Gruss
AnCorr
  Mit Zitat antworten Zitat
Benutzerbild von igel457
igel457

Registriert seit: 31. Aug 2005
1.622 Beiträge
 
FreePascal / Lazarus
 
#4

Re: Anwendung stuerzt ab bei MediaPlayer.open

  Alt 14. Mai 2010, 22:21
Da die vom TMediaPlayer verwendete MCI soweit ich weiß mittlerweile nur ein Wrapper um die DirectShow-Schnittstelle ist, schätze ich mal, dass das Laden eines DirectShow Filters aus irgendeinem Grund fehlschlägt. Da Exceptions, die bei diesem Vorgang auftreten jedoch nicht von der VCL abgefangen werden, beendet sich das Programm komplett.

Soweit meine wilde Theorie.

Was du dagegen tun könntest wäre folgendes:
1. Stürzt das Programm auch auf einem anderen PC ab?
2. Wenn nein, deinstalliere nicht benötige DirectShow-Filter/Dekoderkomponenten auf deinem Rechner
3. Verwende direkt DirectShow oder irgend eine andere Bibliothek und nicht die seit 1991 existierende MCI-Schnittstelle
Andreas
"Sollen sich auch alle schämen, die gedankenlos sich der Wunder der Wissenschaft und Technik bedienen, und nicht mehr davon geistig erfasst haben als die Kuh von der Botanik der Pflanzen, die sie mit Wohlbehagen frisst." - Albert Einstein
  Mit Zitat antworten Zitat
AnCorr

Registriert seit: 15. Mär 2010
45 Beiträge
 
#5

Re: Anwendung stuerzt ab bei MediaPlayer.open

  Alt 14. Mai 2010, 22:32
Hallo igel457

Dass das Programm beendet wird, tritt nur in der IDE beim Debuggen auf.
Ich kann natuerlich nicht auf jeden Rechner Delphi installieren um auszuprobieren wie es sich auf anderen Systemen verhaelt.

Starte ich das Programm ausserhalb der IDE, also direkt vom Windows Explorer oder per Verknuepfung erhalte ich die Fehlermeldung wie vorgesehen, und das Programm laeuft weiter.

Ich arbeite zur Zeit mit Windows 7 Ultimate 64. (Falls das von Wichtigkeit ist)

[edit]
Eigentlich nebensaechlich, aber trotzdem zur Info:
Bei den Dateien handelt es sich ausschliesslich um Mp3 Dateien.
Dabei habe ich jetzt feststellen koennen, dass es am 'eingebetteten' Cover Bild liegt.
Allerdings ist mir der Unterschied bei den 'funktionierenden' und 'fehlerverursachenden' Dateien nicht klar.
In anderen Playern (Windows Media Player, Winamp, MediaMonkey etc.) werden alle Dateien abgespielt.
Ausserdem habe ich alle Dateien selbst von meinen CDs erstellt (AudioGrabber zum Rippen / MediaMonkey zum Taggen). Die Cover habe ich alle selbst eingescannt und auf eine Groesse von ca. 400 pixel x 400 pixel gebracht.
[/edit]


Gruss
AnCorr
  Mit Zitat antworten Zitat
Benutzerbild von igel457
igel457

Registriert seit: 31. Aug 2005
1.622 Beiträge
 
FreePascal / Lazarus
 
#6

Re: Anwendung stuerzt ab bei MediaPlayer.open

  Alt 14. Mai 2010, 22:53
Hallo,

ich habe das schon gelsen und verstanden

Ein solches Verhalten kann durchaus auf den von mir beschriebenen Fehler hinweisen: Auch ich hatte schon damit zu Kämpfen, dass ein nicht ladbares Modul das Programm beendet, der Fehler jedoch korrekt übergangen wird, wenn das Programm nicht aus der IDE gestartet wird. Da ich in meinem Fall jedoch selbst für das Laden des Moduls zuständig war, konnte ich den Fehler beheben.

Edit: Was genau ist denn die Exception, die geworfen wird (E.Message)?
Andreas
"Sollen sich auch alle schämen, die gedankenlos sich der Wunder der Wissenschaft und Technik bedienen, und nicht mehr davon geistig erfasst haben als die Kuh von der Botanik der Pflanzen, die sie mit Wohlbehagen frisst." - Albert Einstein
  Mit Zitat antworten Zitat
AnCorr

Registriert seit: 15. Mär 2010
45 Beiträge
 
#7

Re: Anwendung stuerzt ab bei MediaPlayer.open

  Alt 15. Mai 2010, 01:02
Hallo igel457

Die Meldung lautet:
"A problem occured in initializing MCI"

Entferne ich das Coverbild aus der/den Datei(en) ist alles o.k.
Nur, wie schon beschrieben, kann ich den unterschied zu allen anderen Dateien nicht sehen.
Sobald ich das Coverbild wieder in die Datei(en) einfuege, tritt das Problem wieder auf.
Ein Test mit 'Analize Mp3 files' des Helium Music Manager 7 zeigt leine Fehler in den Dateien. Auch nicht, wenn die Coverbilder in den Dateien eingebettet sind.

Fuer mich ist das Ganze nicht nachvollziehbar.

Gruss
AnCorr
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:45 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz