Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Fr Jul 18, 2025 11:15

Foren-Übersicht » Programmierung » Allgemein
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Audio-Tags lesen
BeitragVerfasst: So Aug 24, 2008 11:09 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Okt 03, 2007 14:22
Beiträge: 388
Hi,

ich möchte die Tags von zig Audio-Formaten (zum Beispiel .mp3,.wav,.wma,.aiff,.aif,.ogg) auslesen. Ich verwende FMOD als Audiobibliothek, die das kann und Lazarus. Es gibt nur ein sehr ätzendes Problem: die Geschwindigkeit ist inakzeptabel bei Playlisten mit >1000 Liedern. Ich habe dazu schon einmal eine Frage im FMOD-Forum erfolglos gestellt: http://www.fmod.org/forum/viewtopic.php?t=10042. Wenn ihr mir dabei helfen könntet, wäre das sehr gut.
Falls nicht, habe ich hier im Anhang etwas für die FPC-Benutzer: Der Code verwendet die TntControls, lohnt es sich, die TntControls (Unicodeunterstützung) durch Lazarus'-Unicode zu ersetzen und statt einem TntFileStream einen normalen FileStream zu nehmen ? Die Methode im Anhang ist übrigens schneller als die von FMOD. Der Unterschied ist übrigens: Wenn ich mit den zig Units die Tags lese, wird es ein einziges mal (und das auch noch schneller als FMOD es kann) geladen und danach muss es nicht nochmal geladen werden - es ist sozusagen schon da und müllt soweit ich weiß nicht mal den Speicher zu. Der Anhang funktioniert scheinbar aus mehreren Parserproblemen nur mit Delphi. Abgesehen davon scheint es sowieso sinnlos die Tnts drinnen zu lassen.

Anhang


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Aug 24, 2008 12:12 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
Wie hast du das laden der Tags organisiert? Lädst du nur, wenn ein Lied in den Sichtbaren Bereich der Liste kommt (oder gestartet wird) und bisher keine Informationen geladen wurden oder lädst du immer alles?
Hier kann es sich auszahlen, die relevanten Tags immer im Cache zu behalten und nur zu laden, wenn ein Lied sichtbar wird, wo noch keine Infos zu geladen wurden. Dann sollte das eigentlich (fast) nicht auffallen.

Gruß Lord Horazont

_________________
If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung.
current projects: ManiacLab; aioxmpp
zombofant networkmy photostream
„Writing code is like writing poetry“ - source unknown


„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Aug 24, 2008 13:59 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Okt 03, 2007 14:22
Beiträge: 388
Nun die Frage ist ja: Wenn ich nun die Lieder in mein eigenes Playlistenformat speichere, kann ich Artist und Titel locker angeben - von mir aus auch Länge. Wenn ich nun eine M3U öffne, ginge das auch, aber es gibt Formate, die da etwas Schwierigkeiten machen könnten - eine simple M3U unterstützt nämlich soweit ich weiß keine Artist- und Titel-Angabe. Ich erinnere mich gerade an irgendein Programm, dass ich sau lange unter Linux benutzen musste, weil mein Player erst bald benutzbar und unter Linux verfügbar sein wird, welches neu hinzugefügte Titel erst lädt, wenn sie in den sichtbaren Scrollbereich kommen und sie dann speichert. Das ist gut. Hättest Du dafür einen ordentlichen Lösungsvorschlag, ich wüsste eben nicht, was ich bei irgendwelchen simplen Playlistenformaten tun sollte.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Aug 24, 2008 14:09 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
Naja, du musst ja die Informationen nicht zwangsweise in die Datei speichern. Du kannst sie ja, wenn das Format es nicht unterstützt, auch einfach nur im Speicher halten und dann halt nach dem Programmneustart wieder neu einlesen, das ist dann halt so. Oder für die aktuelle Playlist eine Informationsdatei im Programmverzeichnis oder so ablegen. Das halte ich sowieso für sinnvoll, damit eine Playlist nicht immer gespeichert sein muss, um auch nach einem Programmneustart noch verfügbar zu sein (siehe Verhalten von Winamp an dieser Stelle).

Gruß Lord Horazont

_________________
If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung.
current projects: ManiacLab; aioxmpp
zombofant networkmy photostream
„Writing code is like writing poetry“ - source unknown


„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Aug 24, 2008 15:39 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Okt 03, 2007 14:22
Beiträge: 388
Naja beim Start neu einlesen ist irgendwie auch nicht so gut. Ich bin ein Programmierer der seinen Benutzern immer gewisse Möglichkeiten offenlässt. Von daher könnte man das so ja auch einbauen, aber die aktuelle Playlist speichere ich sowieso grundsätzlich. Ich denke bloß an die Benutzer die mehrere Playlisten haben, ich habe eine riesige und sonst keine, die ich benutzen würde und da ginge das so eigentlich nur, solange die Playlist in meinem Format mit allen Infos gespeichert würde.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Aug 24, 2008 15:55 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
Naja gut, aber selbst wenn das Format die Titel und Autor Infos nicht speichern kann, kannst du halt dann immernoch on-the-fly die aktuell sichtbaren Titel auslesen, das sollte ja nicht so lange dauern. Wenn du das ganze dann auch noch in einem Thread auslagerst, kann der Benutzer solange auch schon anderes machen, während aus den ganzen "Filename.mp3" Datei für Datei ein "Artist - Title" wird. Du brauchst halt nur einen Cache und ein zuverlässiges System, die den Thread immer wieder zurücksetzt, wenn sich am Aufgabengebiet (also dem aktuell sichtbaren Listenteil) etwas ändert.

Gruß Lord Horazont

_________________
If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung.
current projects: ManiacLab; aioxmpp
zombofant networkmy photostream
„Writing code is like writing poetry“ - source unknown


„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 
Foren-Übersicht » Programmierung » Allgemein


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 4 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.007s | 16 Queries | GZIP : On ]