Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Verständnisfrage zu BASS (BASS_ChannelGetLength) (https://www.delphipraxis.net/173485-verstaendnisfrage-zu-bass-bass_channelgetlength.html)

Drosera 27. Feb 2013 16:49

Verständnisfrage zu BASS (BASS_ChannelGetLength)
 
Tach auch :)

Kann mir jmd. erklären wo der Unterschied ist, ob ich eine Dateilänge (nat. in Byte) über die BASS_ChannelGetLength Funktion ermittle), oder eben über eine Delphi-Funktion die Dateigröße ermittle?

Gausi 27. Feb 2013 19:05

AW: Verständnisfrage zu BASS (BASS_ChannelGetLength)
 
Bass_ChannelGetLength liefert die Größe des unkomprimierten Streams zurück, nicht die der evtl. komprimierten Datei. Auch Metadaten (ID3Tags) werden darin nicht berücksichtigt.

DeddyH 27. Feb 2013 19:06

AW: Verständnisfrage zu BASS (BASS_ChannelGetLength)
 
Z.B. in einer MP3 stehen ja nicht nur die reinen Musikdaten, da kann man noch ganz andere Infos hinterlegen. Daher dürfte BASS_ChannelGetLength exakter sein.
Zitat:

Remarks
The exact length of a stream will be returned once the whole file has been streamed, but until then it is not always possible to 100% accurately estimate the length. The length is always exact for MP3/MP2/MP1 files when the BASS_STREAM_PRESCAN flag is used in the BASS_StreamCreateFile call, otherwise it is an (usually accurate) estimation based on the file size. The length returned for OGG files will usually be exact (assuming the file is not corrupt), but when streaming from the internet (or "buffered" user file), it can be a very rough estimation until the whole file has been downloaded.

Gausi 27. Feb 2013 19:13

AW: Verständnisfrage zu BASS (BASS_ChannelGetLength)
 
Dieser Absatz bezieht sich aber auf die vbr/cbr-Problematik. Eine mp3-Datei mit variabler Bitrate muss von der bass_dll komplett dekodiert werden, um die Länge des Audio-Datenstroms zu ermitteln. Bei mp3s mit konstanter Bitrate ist das nicht nötig.

Drosera 27. Feb 2013 19:20

Spieldauer
 
Erstmal: Danke für die schnellen Antworten!

Meine Frage kam daher, daß ich beim ermitteln über

"GetLength(Byte)" und "Bytes2Seconds" bei Lieder mit einer Spieldauer von > 3.5Min eine Zeit von 40Sek. angezeigt bekommen habe.

Aber für heute ist bei mir Schluss.

Macht's gut, bis demnächst in diesem Theater :wink:

Gausi 28. Feb 2013 10:32

AW: Verständnisfrage zu BASS (BASS_ChannelGetLength)
 
Wenn das bei mp3-Dateien auftritt: Das liegt wahrscheinlich nicht an der Dauer, sondern an der variablen Bitrate. Wenn man den Channel mit dem Flag BASS_STREAM_PRESCAN erzeugt, sollten die Anzeigen stimmen.

Oder wird bei allen Titel jenseits der 3.5m eine Dauer von 40sec angezeigt?


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:56 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