![]() |
Problem mit TMediaPlayer
Liste der Anhänge anzeigen (Anzahl: 1)
Ich habe ein Problem mit dem MediaPlayer.
Windows 7 - Delphi XE 2. Ich habe ein Programm geschrieben, mit dem ich meine .mp3 abspiele. Klappt auch in der Regel, aber bei einigen Dateien popt nach
Delphi-Quellcode:
ein Fenster (siehe Anhang) auf und die betreffende Datei wird nicht wiedergegeben.
Player.FileName:=Dsn;
Player.Open; Player.Play; Nachdem ich ca. 12000 .mp3's manuell überprüft habe, möchte ich die restlichen ca. 70000 .mp3's automatisch prüfen lassen. Problem: Ich habe keine Vorstellung, wie ich erkennen kann, ob die .mp3 'ne Macke hat. Mein Versuch, nach Player.Open oder auch nach Player.Play mit
Delphi-Quellcode:
schlägt fehl.
Result:=not Assigned(Player.Display) or not Player.Display.Visible;
Hat jemand eine Idee, wie ich prüfen kann, ob die .mp3 abgespielt wird, oder nicht. |
AW: Problem mit TMediaPlayer
Du könntest nach einer kurzen Wartezeit State auf mpPlaying prüfen oder auf Position > 0.
Bist du sicher, dass die MP3 Datei das Problem ist? Der TMediaPlayer hat durchaus einige Probleme, z.B. mit manchen Dateien. Sinnvoller wäre z.B. die Verwendung der Bass DLL. |
AW: Problem mit TMediaPlayer
Moin Klaus,
das Problem hatte ich mit TMediaPlayer auch schon. Als Abhilfe hatte ich mir dann die VLC-Player-API übersetzt. Damit konnte ich dann die vom MP verschmähten Dateien abspielen. Wenn ich mich recht entsinne, waren immer Dateien vom MP nicht abspielbar, die bestimmte Metadaten enthielten, z.B., Cover. |
AW: Problem mit TMediaPlayer
Zitat:
Oder kurz: die mp3s sind (wahrscheinlich) in Ordnung, die Macke liegt bei Windows. ;-) Andere Verfahren (wie die genannte bass.dll) benötigen zwar etwas mehr Einarbeitung, sind aber definitiv sinnvoller als die TMediaPlayer-Komponente. |
AW: Problem mit TMediaPlayer
Zitat:
|
AW: Problem mit TMediaPlayer
Du kannst ja mal die bereits als "fehlerhaft" erkannten Files checken, wie es da mit den ID3Tags aussieht. Wenn meine Vermutung richtig ist, sollte mit diesem Code als Versionsstring "2.4.0" ausgeben werden, und die Größe jeweils einen bestimmten Schwellenwert überschreiten. Der Test schlägt allerdings fehl, wenn Windows die Datei schon verpfuscht hat. Dann guck die Datei mal in einem Hex-Editor an und schau, ob der String "ID3" mehr als nur einmal vorkommt (und es dahinter so aussieht als stünden da Infos wie Titel oder Interpret). Falls ja, ist die Datei kaputt. Reparieren geht über "ID3Tag löschen" mit einem anständigen Tagger. Dann wird (vermutlich) der Windows-Murks vorne gelöscht, und der Original-Tag sollte wieder vorne stehen.
Delphi-Quellcode:
Falls das so ist, kannst du damit ggf. ein kleines Testprogramm schreiben, das dir die nicht abspielbaren Files auflistet. Die Tags von 2.4 nach 2.3 zu konvertieren ist zwar prinzipiell möglich (bis auf ggf. ein paar Ausnahme-Felder). Ob es dafür Tools gibt, weiß ich nicht. Evtl. kann
uses Mp3Files; // aus meiner AWB, https://github.com/DanielGausi/AudioWerkzeugeBibliothek
procedure TForm1.ShowInfo(aFile: String); var mp3File: TMp3File; begin mp3File := TMp3File.Create; try mp3File.ReadFromFile(aFile); memo1.Lines.Add(mp3File.ID3v2Tag.VersionString); memo1.Lines.Add(mp3File.ID3v2TagSize.ToString); finally mp3File.free; end; end; ![]() |
AW: Problem mit TMediaPlayer
Zitat:
Danke für die Tipps. Zu "Position > 0" In der Regel funktioniert das, aber gelegentlich leider nicht. Hatte einen Fall, da wurde kurz angespielt und dann abgebrochen. Zu "bass.dll" Wusste gar nicht, dass man damit auch Dateien abspielen kann. Wie auch immer: Ich habe einige Hemmungen, in meinem Programm grundlegende Dinge zu ändern, weil: verbessere ich links etwas, mache ich rechts etwas kaputt. Die Alternative wäre, das Ganze komplett neu zu schreiben, aber das ist mir, zumindest zur Zeit, zu aufwendig. Zu "dass die MP3 Datei das Problem ist?" Nein, denn mit dem Windows-Mediaplayer werden diese Dateien korrekt abgespielt. Wenn ich eine "fehlerhafte" .mp3 mit WavePad 1) Als .wav speichere 2) Die .wav in .mp3 konvertiere wird die auch bei mir korrekt abgespielt. Gelegentlich musste ich das mehrfach machen (3 Mal war bisher das Maximum). |
AW: Problem mit TMediaPlayer
Schick mir mal bitte so eine problematische mp3 per Mail (mail ät gausi.de), oder einen Download-Link per PN oder so. Das interessiert mich jetzt doch ein wenig mehr.
Besonders das "Gelegentlich musste ich das mehrfach machen". Das macht ja so gar keinen Sinn ... |
AW: Problem mit TMediaPlayer
Liste der Anhänge anzeigen (Anzahl: 2)
Zitat:
Bei mir sowohl "fehlerhafte" Datei, wie auch "abspielbare" Datei Version 1, Layer 3 |
AW: Problem mit TMediaPlayer
Zitat:
Habe dir eine "Fehlerhafte" .mp3 per Mail geschickt. Vielleicht hab ich mich falsch ausgedrückt. 1) Ich konvertiere die "fehlerhafte" .mp3 zu .wav. 2) Ich konvertiere die .wav zu .mp3. Wenn die .mp3 dann wieder Probleme macht, wiederhole ich das, aber nicht mit der "Original" .mp3 sondern mit der von .wav zu .mp3 konvertierten Datei. Ich "repariere" also nicht mehrfach die selbe .mp3. Das würde ja wirklich keinen Sinn machen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:28 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz