Seite 2 von 2

Re: MP3 geht nicht

Verfasst: 13.12.2016 13:11
von udg
Stuhli hat geschrieben:Bin nur enttäuscht, dass ich manche MP3s erst umwandeln muss. LAME und Co sind zwar drauf, aber ich muss trotzdem nen Konverter nehmen.... ich verstehe es einfach nicht.
Aus diesem Grund würde ich gern mal deine beiden mp3 testen wollen.
Mache selber Musik und hab auch so damit zu tun. Würde mich mal interessieren. Zur Not kannst mir die Links ja mal per PN schicken.

Re: MP3 geht nicht

Verfasst: 13.12.2016 13:59
von ts-soft
PureBasic.chm hat geschrieben:Hinweis: Auf einigen OS können auch Musik-Dateien mit dieser Bibliothek abgespielt werden. Aber dies wird nicht offiziell unterstützt und ist ggf. auch fehlerhaft. Nutzen Sie besser die Sound Bibliothek dafür.
Entweder eine MP3 Lib eines Drittherstellers nutzen oder aber einen FeatureRequest im englischem Forum.

So ist das einfach nur unnötiges Gejammere.

Re: MP3 geht nicht

Verfasst: 13.12.2016 15:33
von DarkSoul
Ich wollte die MP3's gerade mit deinem Code testen und ggf. mit nem HEX-Editor sezieren, aber die DL-Links sind kaputt. :wink:

Ob LAME oder was anderes, sollte egal sein. Ein MP3-Encoder ist nur dann ein MP3-Encoder, wenn eine gültige MP3 heraus kommt. Sollte also egal sein, wie die MP3 erstellt worden ist. Manche erzeugen besser klingende MP3's als andere, weil sie die Töne, die übernommen werden, mal besser bzw. weniger besser aussuchen. Aber dennoch sind das alles MP3's.

LoadMovie() geht über die windows-eigenen Decoder.

Windows spielt normalerweise alle MP3's.

Fehlerquellen auf deinem Rechner:
- Windows XP ode älter
- Windows-eigener Decoder wurde von einer anderen Software überschrieben
- Eines von diesen ach-so-tollen Codec-Packs wurde installiert (Nicht machen!! Fehlende Codecs gezielt einzeln installieren)

Fehlerquellen in den MP3:
- CBR vs. VBR vs. ABR
- Es gibt 3 verschiedene Arten MP3 (1, 2 und 2.5) - speziell die letzte fehlt manchen Decodern aber dieses ist für Musik ohnehin ungeeignet
- Es gibt auch MP2... Je nachdem, von welchem Hinterhof die Dateien stammen, trifft man öfters auch diese
- Völlig anderer Codec und ein Schlaumeier hat einfach die Endung .MP3 gesetzt
- Korrupte MP3's (kann eigentlich auch nur bei Filesharing passieren, wo sie durch zig Hände gehen und jeder mal bisschen bastelt)
- MP3s wurde verlustfrei geschnitten oder zusammengefügt, wobei Fehler passiert sind
- Falsch sitzender ID3v2-Tag (häufige Fehlerquelle, dann stimmt der Startpunkt des MP3-Streams nicht)
- Headerinformationen passen nicht zum Stream (z.B. Stream ist Dual-Mono, aber im Header steht Joint-Stereo)
- Ungewöhnlicher Container gewählt (z.B. RIFF Wave oder MPEG-TS)
- Fehlplatzierer XING-Header (z.B. Pseudo-VBR)
- Starkes DC-Offset im Tonsignal. Manche Soundkarten kommen wegen der Ausgangs-Elkos damit nicht klar.
- MP3Gain mit viel zu hoher oder niedriger Gain-Einstellung angewendet (Da gibt es Grenzen)
- Die MP3 war die Tonspur von einem Video und beim Demux-Vorgang (Aufteilung in Bild und Ton in einzelne Dateien) ist was schief gelaufen.

Mit kleinen Fehlern sollte ein MP3-Decoder zurecht kommen. Dann gibt es halt hier und da Tonstörungen (meistens in Form von lauten "Knutschgeräuschen" oder roboterartigen Klängen)

Wenn du ne Mediaplayer-Software mit LoadMovie() bauen willst, kann diese nicht mehr als Windows Media Player. Nimm lieber eine gute Lib mit möglichst vielem integrierten Decodern dafür. Bestes Beispiel ist VLC, welcher jede noch so fehlerhafte Schrott-MP3 irgendwie erkennt und korrekt abspielt - so gut es halt geht.

Da du die Dateien anscheinend durch Re-Encoden "reinwaschen" kannst, wird es an den Dateien liegen. Toll ist die Lösung nicht, da das Neucodieren mit Qualitätsverlusten verbunden ist.