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

¿Fue útil?

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?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top