Grabación de sonido WAV como en el iPhone
-
05-09-2019 - |
Pregunta
Estoy haciendo una aplicación de grabación de iPhone que necesita para enviar el archivo de sonido como un .wav a un servidor externo.
A partir del ejemplo SPEAKHERE, soy capaz de grabar sonido como un archivo, pero sólo como .caf
¿Alguien sabe cómo grabar como un archivo WAV en su lugar? O cómo convertir de .caf a .wav en el iPhone? (La conversión debe ocurrir en el teléfono)
EDIT:
Me pregunto si se puede hacer algo con el uso de kAudioFileWAVEType en lugar de kAudioFileCAFType en AudioFileCreateWithURL
Solución
Sí, la clave es kAudioFileWAVEType
AudioFileCreateWithURL (
audioFileURL,
kAudioFileWAVEType,
&audioFormat,
kAudioFileFlags_EraseFile,
&audioFileID
);
El cambio de onda de la CAF en el ejemplo SPEAKHERE hace que la grabación sea como wav. También edito lo mismo en la clase de reproducción, y ha cambiado el nombre del archivo para ser Recording.wav
Otros consejos
Tener un vistazo a libsndfile . Es un bien utilizado (incluyendo por Audacity) biblioteca de C para trabajar con una gran cantidad de formatos de archivo. Soporta lectura y escritura de una variedad de formatos de CAF y WAV.
El CAF Estructura de archivos y formato WAV son bastante similares. En el peor de los casos, la conversión no debe ser demasiado duro.
Sería implican tomar el fragmento de datos de audio, y la copia como es en el archivo WAV, y el uso de la información en la descripción de audio Chunk añadir un equivalente FMT subfragmento para el archivo WAV. Es bastante simple copia de bytes.
Sin embargo, tenga en cuenta (como Eric señaló) existen problemas de licencia, véase: ¿puede la biblioteca Libsndfile ser utilizado en el iPhone iOS?