![]() |
Mehrere Wav-Dateien in einen Memory Stream laden
Hallo,
wer kann mir dringend helfen? Ich möchte mehrere WAV-Dateien in einen Memorystream einlesen. Die Ausgabe mache ich dann, in dem ich den gesamten Stream abspiele. Beispielcode, welche so nicht funktioniert (es wird blos die letzte gefunde Datei abgespielt): ... for i := 0 to Pred(FAudiolist.count) do begin ... SoundFile := FAudioList[s-1]; if FileExists(Soundfile) then begin ms.LoadFromFile(SoundFile); AudioSource.CopyFrom(ms,0); AudioSource.Position := ms.Size; end ... |
AW: Mehrere Wav-Dateien in einen Memory Stream laden
Warum setzt du denn AudioSource.Position := ms.Size?
|
AW: Mehrere Wav-Dateien in einen Memory Stream laden
Hallo,
danke für die Antwort. Wie hänge ich aber an den Stream an? |
AW: Mehrere Wav-Dateien in einen Memory Stream laden
Und man kann auch nicht einfach so Audiodateien aneinanderhängen.
Es funktioniert ja auch nicht, wenn du mehrere PAS-Dateien aneinanderhängst. Da muß man schon den "funktionalen" Inhalt richtig verknüpfen, damit sowas ginge. |
AW: Mehrere Wav-Dateien in einen Memory Stream laden
So wie es da steht müsste es eigentlich mit dem Anhängen funktionieren, hab mich vorhin verguckt.
Was passiert denn noch so in der for-Schleife? |
AW: Mehrere Wav-Dateien in einen Memory Stream laden
Man kann die schon aneinanderhängen, es kommt ja drauf an wie man die abspielt. Wenn man die Startposition und Größe hat geht das schon.
|
AW: Mehrere Wav-Dateien in einen Memory Stream laden
Zitat:
|
AW: Mehrere Wav-Dateien in einen Memory Stream laden
Wenn du doch für jedes Lied im Stream den Start und die Größe hast, dann kannst du doch einfach nach dem ersten Lied auf die Startposition des zweiten springen und spielst da weiter ohne erst die Datei von der Platte laden zu müssen.
Oder wenn die Abtastraten usw. bei allen Waves gleich ist, könnte man auch bei der ersten den Header anpassen und die Header bei den folgenden weglassen. :-D |
AW: Mehrere Wav-Dateien in einen Memory Stream laden
In der Vorschleife sollen nur die Wav-Dateien zu einem Stream addiert werden.
Diesen Stream möchte ich dann mit einem Player laden und abspielen. Kann mir jemand einen kurzen Beispielcode zum addieren der Wav-Dateien zu einem Stream geben? |
AW: Mehrere Wav-Dateien in einen Memory Stream laden
Zitat:
|
AW: Mehrere Wav-Dateien in einen Memory Stream laden
Lass doch einfach
Delphi-Quellcode:
weg und dann hast du alle WAVs hintereinander im Stream.
AudioSource.Position := ms.Size;
|
AW: Mehrere Wav-Dateien in einen Memory Stream laden
Zitat:
Aber bei WAVE gwht es im Allgemeinen nicht. :stupid: |
AW: Mehrere Wav-Dateien in einen Memory Stream laden
Es wäre interessant zu wissen wie die Dateien abgespielt werden sollen bzw. was eigentlich erreicht werden soll.
|
AW: Mehrere Wav-Dateien in einen Memory Stream laden
Erreicht soll werden:
1. Ich möchte mehrere Wave-Dateien hintereinander abspielen, ohne meine Anwendung zu blockieren. So habe ich mir gedacht diese in einen Stream zu laden und abzuspielen. Hat jemand eine Idee? |
AW: Mehrere Wav-Dateien in einen Memory Stream laden
Und wie spielst du die WAVE ab? Zeig doch mal den Codeteil, wie die Wave aus dem Stream wiedergegeben wird.
|
AW: Mehrere Wav-Dateien in einen Memory Stream laden
Hier der Abspielcode:
PlaySound(ms, 0, SND_ASYNC or SND_MEMORY); //MMSystem |
AW: Mehrere Wav-Dateien in einen Memory Stream laden
Du kopierst alle Dateien in AudioSource und spielst dann ms ab, deshalb wird ja nur die letzte abgespielt. Du kannst aber nicht einfach den kompletten Stream übergeben und alle Dateien hintereinander abspielen. Du musst dir die Lieder z.B. aus AudioSource wieder in einen eigenen Stream holen und diesen Stream dann mit PlaySound abspielen. Dazu musst du dir aber auch noch die Startposition für jedes Lied in AudioSource merken, die Größe kannst du dann anhand der Startpositionen berechnen oder du merkst dir die auch gleich.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:19 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-2025 by Thomas Breitkreuz