una programa para llamadas llamada gratis grabar grabador entrante descargar como aplicacion iphone ios core-audio audio-recording amr

programa - grabador de llamadas iphone gratis



¿Cómo puedo grabar el formato de audio AMR en el iPhone? (4)

Supongo que el formato de códec AMR no es compatible con la aplicación de grabación de voz de mi iPhone.

Puede ser que uno intente integrar alguna fuente abierta, la implementación del codificador AMR en el marco de la aplicación iPhone de Apple e intente hacer que la grabadora de voz almacene el audio en formato AMR codificado. (No sé si eso está permitido por Apple por su NDA / licencia).

-ANUNCIO

Una grabadora de voz no necesita audio Linear PCM sin comprimir. AMR comprimido estaría bien. El marco de iPhone creado para grabar audio es bastante simple, pero los únicos ejemplos que he encontrado para configurar el formato de audio (que provienen de Apple) utilizan LinearPCM. He intentado varias otras combinaciones de valores, pero parece que no puedo hacer que nada funcione.

¿Alguien tiene algún código que realmente registre AMR ?

Editar: El formato AMR es una de las opciones para configurar el tipo de datos, pero las otras opciones (tamaño del paquete, tamaño del fotograma, etc.) no parecen coincidir, independientemente de lo que establezca.

Editar: Esto es lo que tengo para la versión PCM:

/* If we want to use AMR instead of PCM: AMR Format: Sampling Frequency: 8 kHz/13-bit (160 samples for 20 ms frames), filtered to 200-3400 Hz eight source codecs : 12.2, 1.2, 7.95, 7.40, 6.70, 5.90, 5.15, 4.75 kbit/s generated frame length: 244, 204, 159, 148, 134, 118, 103, 95 bits per frame */ format->mFormatID = kAudioFormatLinearPCM; format->mSampleRate = 8000.0; //8 kHz format->mFramesPerPacket = 1; //1 frame per packet format->mChannelsPerFrame = 1; //Mono format->mBytesPerFrame = 2; //8/bits per frame (round up) format->mBytesPerPacket = 2; //Same as bytes per frame format->mBitsPerChannel = 16; //16-bit audio format->mReserved = 0; //always 0 format->mFormatFlags = kLinearPCMFormatFlagIsBigEndian | kLinearPCMFormatFlagIsSignedInteger | kLinearPCMFormatFlagIsPacked;



Puede grabar audio en un búfer Linear PCM sin comprimir (circular o circular) y, en otro hilo, convertir datos en este búfer, utilizando su propio motor de compresión AMR (u otro), antes de guardar los datos de audio comprimidos en un archivo.


El códec AMR NO es compatible con la codificación / grabación en el iPhone, aunque es compatible con la reproducción: esta es la razón por la que existe la constante kAudioFormatAMR.

La API oficial dice que los formatos de codificación compatibles son:

  • ALAC (Apple Lossless) ~> kAudioFormatAppleLossless
  • iLBC (códec de baja velocidad de bits de Internet, para voz) ~> kAudioFormatiLBC
  • IMA / ADPCM (IMA4) ~> kAudioFormatAppleIMA4
  • PCM lineal ~> kAudioFormatLinearPCM
  • μ-law ~> kAudioFormatULaw
  • una ley ~> kAudioFormatALaw

Puede probar uno de estos formatos o usar un codificador AMR de código abierto como sugiere goldenmean .

editar : enlace de API oficial actualizado