AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Problem mit TMediaPlayer

Ein Thema von Amateurprofi · begonnen am 20. Dez 2024 · letzter Beitrag vom 8. Jan 2025
Antwort Antwort
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.123 Beiträge
 
Delphi 11 Alexandria
 
#1

AW: Problem mit TMediaPlayer

  Alt 21. Dez 2024, 09:52
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.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Gausi
Gausi

Registriert seit: 17. Jul 2005
901 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Problem mit TMediaPlayer

  Alt 21. Dez 2024, 11:20
Bist du sicher, dass die MP3 Datei das Problem ist?
Sicher kann man da nicht sein, aber das ist sehr gut möglich. Bei Windows 7 und mp3 sollte man generell vorsichtig sein. Da waren z.B. mp3-Dateien mit dem ID3-Tag in Version 2.4 ein Problem. Diese Version wurde aber auch damals schon z.B. von iTunes genutzt. Den hat Windows nicht verstanden und beim Bearbeiten der Metadaten dann zusätzlich einen in Version 2.3 davor gepackt, sodass die vorher enthaltenen Metadaten auch für korrekt arbeitende Player und Tagger erstmal weg waren. Und wenn der 2.4er-Tag zu groß war (z.B. wegen Cover-Art), dann hat die Abspiel-Engine möglicherweise die Suche nach dem ersten MPEG-Header zu früh abgebrochen und die Datei als ungültig empfunden.

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.
Being smart will count for nothing if you don't make the world better. You have to use your smarts to count for something, to serve life, not death.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke
Online

Registriert seit: 10. Jun 2003
Ort: Berlin
9.908 Beiträge
 
Delphi 12 Athens
 
#3

AW: Problem mit TMediaPlayer

  Alt 21. Dez 2024, 14:59
Oder kurz: die mp3s sind (wahrscheinlich) in Ordnung, die Macke liegt bei Windows.
Das wollte ich damit sagen. Das ist wohl falsch rübergekommen.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Benutzerbild von Gausi
Gausi

Registriert seit: 17. Jul 2005
901 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Problem mit TMediaPlayer

  Alt 21. Dez 2024, 15:38
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:
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;
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 Mp3Tag das.
Being smart will count for nothing if you don't make the world better. You have to use your smarts to count for something, to serve life, not death.
  Mit Zitat antworten Zitat
Amateurprofi

Registriert seit: 17. Nov 2005
Ort: Hamburg
1.087 Beiträge
 
Delphi XE2 Professional
 
#5

AW: Problem mit TMediaPlayer

  Alt 7. Jan 2025, 11:26
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:
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;
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 Mp3Tag das.
Danke Gausi,
Bei mir sowohl "fehlerhafte" Datei, wie auch "abspielbare" Datei Version 1, Layer 3
Angehängte Grafiken
Dateityp: png Fehlerhafte Datei.png (7,1 KB, 16x aufgerufen)
Dateityp: png Abspielbare Datei.png (7,2 KB, 14x aufgerufen)
Gruß, Klaus
Die Titanic wurde von Profis gebaut,
die Arche Noah von einem Amateur.
... Und dieser Beitrag vom Amateurprofi....
  Mit Zitat antworten Zitat
Benutzerbild von Gausi
Gausi

Registriert seit: 17. Jul 2005
901 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Problem mit TMediaPlayer

  Alt 7. Jan 2025, 12:44
Bei mir sowohl "fehlerhafte" Datei, wie auch "abspielbare" Datei Version 1, Layer 3
mp3 ist kurz für "MPEG-1, Layer 3". Das hat mit der Version des ID3-Tag nichts zu tun.

Die Datei, die du mir geschickt hast, hat zumindest nicht das Problem, das ich vermutet hatte. Das einzige was mir da auffällt, ist ein enthaltener "INFO" Header (der recht selten ist), und darauf folgend relative viele Fake-MPEG-Frames mit Lame-Daten drin.
Kann sein, dass die mit dem INFO-Header zusammenhängen, und der TMediaplayer-Decoder dabei ins Schleudern kommt. Denn die dürften keine sinnvoll dekodierbare Audiodaten enthalten, sondern weitere Metadaten (z.B. Sprungstellen-Array oder sowas). Dazu weiß ich aber zu wenig über die Interna des Lame-Encoders, und was das für Daten sind (im Wesentlichen sehr viele $55 Bytes).

Das mehrfache wiederholen hatte ich schon so richtig verstanden - aber das macht ja auch keinen Sinn. Das würde ja eigentlich bedeuten, dass der "Fehler" im Audiosignal selbst zu suchen wäre, der dann nach einigen Generationen und entsprechenden Verlusten weg wäre.

Bin da jetzt etwas ratlos ...
Being smart will count for nothing if you don't make the world better. You have to use your smarts to count for something, to serve life, not death.
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.123 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Problem mit TMediaPlayer

  Alt 7. Jan 2025, 17:28
Moin Klaus,

eventuell könntest Du auch ffmpeg verwenden.
ffmpeg zum Konvertieren und ffprobe zum Prüfen.
Dieses Programm ist zwar meist für Video-Dateien bekannt,
kann aber auch Audio-Dateien.
Ich werde mal versuchen die passenden Parameter rauszusuchen.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 00:07 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-2025 by Thomas Breitkreuz