La registrazione audio in formato WAV su iPhone
-
05-09-2019 - |
Domanda
Sto facendo un app iPhone di registrazione che ha bisogno di inviare il file audio come WAV ad un server esterno.
A partire dall'esempio SpeakHere, sono in grado di registrare l'audio in un file, ma solo come .caf
Qualcuno sa come registrare come un wav, invece? O come convertire da .caf al .wav su iPhone? (La conversione deve avvenire al telefono)
EDIT:
Mi chiedo se qualcosa può essere fatto con l'utilizzo di kAudioFileWAVEType invece di kAudioFileCAFType in AudioFileCreateWithURL
Soluzione
Yup, la chiave è kAudioFileWAVEType
AudioFileCreateWithURL (
audioFileURL,
kAudioFileWAVEType,
&audioFormat,
kAudioFileFlags_EraseFile,
&audioFileID
);
La modifica a WAVE dal CAF nell'esempio SpeakHere fa sì che la registrazione sia in formato WAV. Ho anche modificare la stessa cosa nella classe di riproduzione, e ha cambiato il nome del file per essere Recording.wav
Altri suggerimenti
Dai un'occhiata alla libsndfile . Si tratta di un ben utilizzati (anche per Audacity) libreria C per lavorare con un sacco di formati di file. Supporta lettura e scrittura di una varietà di formati CAF e WAV.
Il CAF File struttura e formato WAV sono abbastanza simili. Se il peggio arriva al peggio, la conversione non dovrebbe essere troppo difficile.
Si comporterebbe prendendo il blocco di dati audio, e la copia come è nel file WAV, e utilizzando le informazioni nella descrizione audio Chunk per aggiungere un equivalente fmt subchunk per il file WAV. E 'abbastanza semplice copia di byte.
Tuttavia, essere consapevoli (come Eric ha sottolineato) non ci sono problemi di licenza, consultare: può la biblioteca Libsndfile essere utilizzato su iPhone iOS?