Ich habe eine wirklich kurze Audiodatei, sagen wir eine Zehntelsekunde im (sagen wir) .PCM-Format
Ich möchte RemoteIO verwenden, um die Datei wiederholt zu durchlaufen, um einen kontinuierlichen Musikton zu erzeugen. Also, wie lese ich das in ein Array von Floats?
BEARBEITEN: Während ich das Dateiformat wahrscheinlich ausgraben, die Datei in eine NSData extrahieren und manuell verarbeiten könnte, nehme ich an, dass es einen vernünftigeren generischen Ansatz gibt ... (der zB verschiedene Formate beherrscht)
Sie können ExtAudioFile verwenden, um Daten aus jedem unterstützten Datenformat in zahlreichen Client-Formaten zu lesen. Hier ist ein Beispiel, um eine Datei als 16-Bit-Ganzzahlen zu lesen:
%Vor% Wenn Sie Float32 Daten wollten, würden Sie format
wie folgt einrichten:
Ich bin mit RemoteIO nicht vertraut, aber ich kenne WAV's und dachte, ich würde einige Formatinformationen auf ihnen veröffentlichen. Wenn Sie benötigen, sollten Sie in der Lage sein, Informationen wie Dauer, Bitrate, usw. schnell zu analysieren.
Erstens, hier ist eine ausgezeichnete Website, die das WAVE PCM-Soundfile-Format detailliert beschreibt. Diese Seite zeigt auch hervorragend, wie sich die verschiedenen Byte-Adressen innerhalb des "fmt" -Unterstücks verhalten.
Die Dauer einer WAVE-Datei kann wie folgt berechnet werden:
%Vor%Wo
%Vor%und DataChunkSize enthalten nicht die 8 Bytes, die für die ID und die Größe des Unterblocks "data" reserviert sind.
Wenn Sie das wissen, kann die DataChunkSize berechnet werden, wenn Sie die Dauer des WAV und des ByteRates kennen.
%Vor%Dies kann nützlich sein, um die Größe der Wav-Daten beim Konvertieren von Formaten wie mp3 oder wma zu berechnen. Beachten Sie, dass ein typischer wav-Header 44 Bytes ist, gefolgt von DataChunkSize (dies ist immer der Fall, wenn die wav mit dem Normalizer-Tool konvertiert wurde - zumindest beim Schreiben).
Tags und Links ios file core-audio