2009-08-25 11 views
3

Kann man zwei wav-Dateien zu einem kombinieren, als wären sie gleichzeitig gespielt worden? Ich muss das programmatisch machen.iPhone - zwei wav/caf-Dateien zu einem kombinieren

Der einzige Weg, den ich bis jetzt gefunden habe, ist, beide gleichzeitig zu spielen und die Ausgabe mit AVAudioRecorder aufzuzeichnen. Dies funktioniert jedoch nicht, wenn der Benutzer Kopfhörer verwendet.

Kann mir bitte jemand in die richtige Richtung zeigen.

Danke.

Antwort

0

Es könnte einen besseren Weg geben, aber wenn beide Wavs dieselbe Kodierung/Bitrate haben, etc, können Sie einfach den wav-Header (erste 44 Bytes nach wav-Format-Spezifikation) der zweiten Datei entfernen und den Rest von 2nd verketten wav zuerst.

+0

Aber würde das nicht einfach die Dateien so ablegen, dass sie nacheinander abgespielt werden? Ich möchte sie kombinieren, so dass das Abspielen der resultierenden Datei sich so anfühlt, als würden sie gleichzeitig abgespielt. – lostInTransit

+0

Ich bin mir nicht sicher; Abhängig von Ihren WAV-Dateien kann es bei dieser Methode zu einem erkennbaren "Übergang" kommen. Sie könnten es wahrscheinlich "verblassen", indem Sie die Daten am Ende von wav1 und am Anfang von wav2 interpolieren. Aber das würde natürlich eine Analyse der Kodierung/des Inhalts Ihrer Dateien erfordern. – ttvd

2

Sie müssen die Beispieldaten jeder Datei lesen, den Durchschnittswert für jeden Beispielwert berechnen und das Ergebnis in eine neue Datei schreiben. Sie können ExtAudioFile verwenden, um Dateien einschließlich der Header und der Beispieldaten zu lesen und zu schreiben.

Sie müssen auch die Kopfzeile mit der richtigen Länge der Datei aktualisieren, da Felder vorhanden sind, deren Wert von der Länge der Beispieldaten abhängt.

Verwandte Themen