AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi MP3 in Cache "zwischenspeichern"
Thema durchsuchen
Ansicht
Themen-Optionen

MP3 in Cache "zwischenspeichern"

Ein Thema von kurtm1 · begonnen am 2. Jul 2005 · letzter Beitrag vom 13. Jul 2005
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    
kurtm1

Registriert seit: 12. Dez 2003
348 Beiträge
 
#1

MP3 in Cache "zwischenspeichern"

  Alt 2. Jul 2005, 20:05
Ist es irgendwie möglich einen Teil einer MP3 Datei (die letzten 2 Sekunden) einzulesen (Stream oder sowas ähnliches), und diese dann abzuspielen?
(Außerdem müsste ich dann noch die Lautstärke des Abspielens ändern können)
  Mit Zitat antworten Zitat
Daniel G
(Gast)

n/a Beiträge
 
#2

Re: MP3 in Cache "zwischenspeichern"

  Alt 2. Jul 2005, 20:21
Hmm... Kommt darauf an, wie. Du könntest die Datei öffnen und dann soweit vorspulen, bis du bei (Gesamtzeit - 2 Sekunden) angekommen bist,

oder

du liest die Datei halt mit TFileStream aus, wobei du dann natürlich auch den Header entsprechend verarbeiten musst. (Nein, das ist sicher nicht einfach, vor allem bei VBR)
  Mit Zitat antworten Zitat
kurtm1

Registriert seit: 12. Dez 2003
348 Beiträge
 
#3

Re: MP3 in Cache "zwischenspeichern"

  Alt 2. Jul 2005, 20:29
Zitat von Daniel G:
Hmm... Kommt darauf an, wie. Du könntest die Datei öffnen und dann soweit vorspulen, bis du bei (Gesamtzeit - 2 Sekunden) angekommen bist,
Das ist mir auch klar, nur qäre es nicht wirklich effektiv, wenn ich nur 2 Sekunden spielen will...
  Mit Zitat antworten Zitat
Daniel G
(Gast)

n/a Beiträge
 
#4

Re: MP3 in Cache "zwischenspeichern"

  Alt 2. Jul 2005, 21:50
Zitat von kurtm1:
Zitat von Daniel G:
Hmm... Kommt darauf an, wie. Du könntest die Datei öffnen und dann soweit vorspulen, bis du bei (Gesamtzeit - 2 Sekunden) angekommen bist,
Das ist mir auch klar, nur qäre es nicht wirklich effektiv, wenn ich nur 2 Sekunden spielen will...
Jo, das stimmt. Tja, wie gesagt, dann bleibt dir nur die Möglichkeit, den Header zu analysieren um herauszufinden, wo die letzten 2 Sekunden beginnen. Wobei ich mir nicht sicher bin, ob du die Daten so ohne weiteres aus dem Stream "abspielen" kannst. Zumal ich auch so gar keinen Plan hab', wozu du das brauchst und ob das dem Aufwand gerecht wird.

MP3-Formatspezifikationen gibt es auf www.wotsit.org, vllt. findest du ja auf swissdelphicenter.net noch mehr zum Thema MP3-Header.
  Mit Zitat antworten Zitat
kurtm1

Registriert seit: 12. Dez 2003
348 Beiträge
 
#5

Re: MP3 in Cache "zwischenspeichern"

  Alt 3. Jul 2005, 14:44
Zitat von Daniel G:
Zitat von kurtm1:
Zitat von Daniel G:
Hmm... Kommt darauf an, wie. Du könntest die Datei öffnen und dann soweit vorspulen, bis du bei (Gesamtzeit - 2 Sekunden) angekommen bist,
Das ist mir auch klar, nur qäre es nicht wirklich effektiv, wenn ich nur 2 Sekunden spielen will...
Jo, das stimmt. Tja, wie gesagt, dann bleibt dir nur die Möglichkeit, den Header zu analysieren um herauszufinden, wo die letzten 2 Sekunden beginnen. Wobei ich mir nicht sicher bin, ob du die Daten so ohne weiteres aus dem Stream "abspielen" kannst. Zumal ich auch so gar keinen Plan hab', wozu du das brauchst und ob das dem Aufwand gerecht wird.

MP3-Formatspezifikationen gibt es auf www.wotsit.org, vllt. findest du ja auf swissdelphicenter.net noch mehr zum Thema MP3-Header.
Ich brauche es dazu, um Übergänge zwischen verschiedenen Liedern herzustellen
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: MP3 in Cache "zwischenspeichern"

  Alt 3. Jul 2005, 16:43
Moin,

ich habe so etwas gerade erstellt. Auf Basis des BASS-Systems.
Ich nehme allerdings nicht die letzten 2 Sekunden, sondern messe die letzten 20 Sekunden des Liedes aus. Wenn das Lied gestartet wird, starte ich es in einem zweiten Programm-Thread, in einem lautlosen Kanal parallel. Dort springe ich an die letzten 20 Sekunden, spiele das Lied ab und speichere die Pegel.
Dann gehe ich vom Ende zurück und suche eine bestimmte (selbst definierte) Pegelstelle, bei der das Lied enden soll. Man erhält so nach 20 Sekunden die Abbruchzeit für das aktuelle Lied.
Diese Vorgehensweise ist lieder notwendig, weil man nur dann die Pegel auslesen kann, wenn der Stream abgespielt wird (beim BASS-System).
Wenn du das allerdings mit eigenen Mitteln berechnen willst, dass würde mich dann auch mal interessieren.

Die Endzeit des aktuellen Liedes ist die Startzeit des nächsten Liedes.
Jedes Lied wird bis zum Ende abgespielt. Es entsteht also kein abrupter Wechsel, sondern ein sauberes Überblenden.

MfG
Thorsten
  Mit Zitat antworten Zitat
kurtm1

Registriert seit: 12. Dez 2003
348 Beiträge
 
#7

Re: MP3 in Cache "zwischenspeichern"

  Alt 3. Jul 2005, 17:00
Ja wigentlich wollte ich genau das selbe coden.

Mit Bass sollen "einfach" 2 Lieder übergeblendet werden.


Ich habe mein Programm jedoch auf Basis der Bass Komponente erstellt, und wollte zunächst 2 Player für die Realisierung des Fadings nehmen, bis ich erkennen musste, dass die Komponente nur einmal im Programm verwendet werden kann.

Daher suche ich nach Alternativen das fading zu coden...
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: MP3 in Cache "zwischenspeichern"

  Alt 3. Jul 2005, 17:32
Du brauchst doch das BASS-System nur einmal, dir stehen doch dann mehrere Kanäle zur Verfügung.
Ich habe sogar zwei Soundkarten und habe durch einen Trick (DLL wird zweimal geladen) in einer Anwendung das BASS-System zweimal gestartet, für jede Soundkarte. Damit kann man auf der einen Soundkarte abspielen (mehrere Kanäle mischen) und die anderen Soundkarte kann als Monitor benutzt werden.

Ich verstehe also nicht ganz, wo dein Problem liegt.

MfG
Thorsten
  Mit Zitat antworten Zitat
kurtm1

Registriert seit: 12. Dez 2003
348 Beiträge
 
#9

Re: MP3 in Cache "zwischenspeichern"

  Alt 3. Jul 2005, 17:43
ok das klingt alles super.

Mein "Problem" ist, dass ich diese Komponente benutze:
http://www.delphipraxis.net/internal...=376329#376329

Um deine Idee zu realisieren, müsste ich ja wahrscheinlich direkt die bass.dll verwenden..
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#10

Re: MP3 in Cache "zwischenspeichern"

  Alt 3. Jul 2005, 18:43
Ja, ich habe das BASS-System direkt benutzt.

Das ist eigentlich auch nicht sehr schwer. Der Code der Komponente ist ja auch gegeben.
Mich juckte das gerade, denn die Komponente ist eigentlich noch sehr gut ausbaufähig. Besonders das dynamische Laden der DLL gefällt mir.
Nur leider funktioniert diese Komponente bei mir überhaupt nicht. Schade.
Nicht als Normaler Benutzer und auch nicht als Administrator.
Beim Starten des Beispielplayers bekomme ich einen Integer-Überlauf.

Nja, dann eben nicht.
Kann dir leider mit dieser Komponente nicht weiterhelfen.

MfG
Thorsten
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    


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 13:40 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