AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit TMediaPlayer

Ein Thema von Amateurprofi · begonnen am 20. Dez 2024 · letzter Beitrag vom 8. Jan 2025
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von Gausi
Gausi

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

AW: Problem mit TMediaPlayer

  Alt Gestern, 13: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 ...
The angels have the phone box.
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

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

AW: Problem mit TMediaPlayer

  Alt Gestern, 18: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
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.669 Beiträge
 
Delphi 11 Alexandria
 
#13

AW: Problem mit TMediaPlayer

  Alt Gestern, 21:09
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.
Solange du ohne Visualisierung usw. nur abspielen möchtest, ist das mit der bass.dll ohne große Mühe machbar.

Etwas mehr Aufwand wird es, wenn du die aktuelle Position beim Abspielen anzeigen möchtest, eine Visualisierung wie gesagt, usw., so dass das nicht mal eben so geht.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Amateurprofi

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

AW: Problem mit TMediaPlayer

  Alt Gestern, 22:55
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.
Solange du ohne Visualisierung usw. nur abspielen möchtest, ist das mit der bass.dll ohne große Mühe machbar.

Etwas mehr Aufwand wird es, wenn du die aktuelle Position beim Abspielen anzeigen möchtest, eine Visualisierung wie gesagt, usw., so dass das nicht mal eben so geht.
Danke jaenicke,
Einer der Bestandteile meines Programms ist die Anzeige der aktuellen Position beim Abspielen (Anhang).
Die Daten hierfür ermittle ich mit der bass.dll und die jeweils aktuelle Position mit dem TMediaPlayer.
Das klappte auch gut, jedenfalls bis ich eine Sammlung von ca. 40k Titeln dazu bekam, bei denen einige Probleme bereiten.
Naja, es scheint nicht ganz einfach zu sein die maschinell zu ermitteln, werde ich also händisch machen.
Miniaturansicht angehängter Grafiken
player.png  
Gruß, Klaus
Die Titanic wurde von Profis gebaut,
die Arche Noah von einem Amateur.
... Und dieser Beitrag vom Amateurprofi....
  Mit Zitat antworten Zitat
Amateurprofi

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

AW: Problem mit TMediaPlayer

  Alt Gestern, 23:30
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.
Danke, Cristian,
wie ich schrieb, arbeite ich mit WavePad und bin damit auch zufrieden.
Das "Reparieren" einer Datei kostet mich nur einen Klick, der Rest läuft automatisch.
Delphi-Quellcode:
const Fmt='"%S" -saveas "%S" -saveas "%S" -exit';
var WavDsn,S,WP:String;
begin
   ...
   WP:=MPlayer.WavePadPath;
   WavDsn:=ChangeFileExt(Dsn,'.wav'); // Dsn ist der Pfad zur .mp3
   S:=Format(Fmt,[Dsn,WavDsn,Dsn]);
   ShellExecuteW(0,'open',PWideChar(WP),PWideChar(S),Nil,SW_SHOWNORMAL);
end;
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
888 Beiträge
 
Delphi 11 Alexandria
 
#16

AW: Problem mit TMediaPlayer

  Alt Heute, 06:42
Einer der Bestandteile meines Programms ist die Anzeige der aktuellen Position beim Abspielen (Anhang).
Die Daten hierfür ermittle ich mit der bass.dll und die jeweils aktuelle Position mit dem TMediaPlayer.
Wenn du ohnehin schon die bass.dll nutzt, um die Waveform zu erzeugen, dann macht der TMediaPlayer zum Abspielen ja gar keinen Sinn mehr. Das würde ich fast damit vergleichen wollen, dass du dir einen teuren Sportwagen für die schönen bequemen Sitze kaufst, und zum fahren dann trotzdem ein paar Pferde davor spannst.

Eine Fortschritts-Anzeige ist auch mit der bass.dll kein Problem, es geht nur nicht "automatisch" wie bei der visuellen TMediaPlayer-Komponente. Ich habe damals mal ein Tutorial Memp - Mein einfacher mp3-Player dazu geschrieben, kannst da ja mal reinschauen. Fortschrittsanzeige sind auch nur ein paar Zeilen Code.

Die bass.dll kann die Datei, die du mir geschickt hast, übrigens abspielen, zumindest macht mein Player das. Insgesamt ist die zwar sehr leise, aber sie wird abgespielt.
The angels have the phone box.
  Mit Zitat antworten Zitat
Amateurprofi

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

AW: Problem mit TMediaPlayer

  Alt Heute, 15:22
Einer der Bestandteile meines Programms ist die Anzeige der aktuellen Position beim Abspielen (Anhang).
Die Daten hierfür ermittle ich mit der bass.dll und die jeweils aktuelle Position mit dem TMediaPlayer.
Wenn du ohnehin schon die bass.dll nutzt, um die Waveform zu erzeugen, dann macht der TMediaPlayer zum Abspielen ja gar keinen Sinn mehr. Das würde ich fast damit vergleichen wollen, dass du dir einen teuren Sportwagen für die schönen bequemen Sitze kaufst, und zum fahren dann trotzdem ein paar Pferde davor spannst.

Eine Fortschritts-Anzeige ist auch mit der bass.dll kein Problem, es geht nur nicht "automatisch" wie bei der visuellen TMediaPlayer-Komponente. Ich habe damals mal ein Tutorial Memp - Mein einfacher mp3-Player dazu geschrieben, kannst da ja mal reinschauen. Fortschrittsanzeige sind auch nur ein paar Zeilen Code.

Die bass.dll kann die Datei, die du mir geschickt hast, übrigens abspielen, zumindest macht mein Player das. Insgesamt ist die zwar sehr leise, aber sie wird abgespielt.
Danke, Gausi.
Schöner Vergleich Sportwagen und Pferde.
Deine Argumentation ist also, wenn ich schon irgendwo die Funktion MinIntValue verwende, weil ich den kleinsten von vielen Werten haben möchte, dann sollte ich in Fällen in denen ich das Minimum aus nur 2 Zahlen haben möchte, auch MinIntValue verwenden? (Sorry, auf die Schnelle fällt mir kein besserer Vergleich ein.)
Ich benutze den TMediaPlayer um .mp3's abzuspielen, und für einen ganz bestimmten Zweck die Bass.dll.
Mein Programm habe ich 2011 geschrieben, damals ohne die WaveForm, und damals wusste ich noch nichts von der Bass.dll.
Jetzt alles umzuschreiben, nur weil es gelegentlich hakt, erscheint mir zu aufwendig - aber wer weiß, wie ich demnächst darüber denke.
Warscheinlich werde ich mich dann irgendwann dazu hinreißen lassen, weil wenn mir ein Gedanke im Kopf herumspukt, werde ich den nicht wieder los.
Zu Memp: Ich kenne Nemp (mit N), mag sein ich habe teilweise daraus abgeschrieben.
Ich hab übrigens noch ein Problem mit dem TMediaPlayer, aber nach dem Grundsatz 1 Thread - 1 Frage werde ich dazu bei Gelegenheit einen weiteren Thread beginnen.
Gruß, Klaus
Die Titanic wurde von Profis gebaut,
die Arche Noah von einem Amateur.
... Und dieser Beitrag vom Amateurprofi....
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 17:59 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