2012-05-11 20 views
6

Estoy desarrollando una aplicación para iPhone que graba el audio en formato .wav.Aplicación para iPhone: grabación de audio en mp3

Este es el código

NSMutableDictionary* recordSetting = [[NSMutableDictionary alloc]init];   
[recordSetting setValue :[NSNumber numberWithInt:kAudioFormatLinearPCM] forKey:AVFormatIDKey]; 
[recordSetting setValue:[NSNumber numberWithFloat:11025.0] forKey:AVSampleRateKey];   
[recordSetting setValue:[NSNumber numberWithInt: 1] forKey:AVNumberOfChannelsKey]; 
[recordSetting setValue:[NSNumber numberWithInt:16] forKey:AVLinearPCMBitDepthKey]; 




NSArray *path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, 
NSUserDomainMask, YES); 

    NSString *documentsDirectory = [path objectAtIndex:0]; 

    NSString *myDBnew = [documentsDirectory stringByAppendingPathComponent:@"test.wav"]; 

recordedTmpFile = [NSURL fileURLWithPath:myDBnew]; 

NSLog(@"Using File called: %@",recordedTmpFile); 

     recorder = [[ AVAudioRecorder alloc] initWithURL:recordedTmpFile settings:recordSetting error:&error]; 
     [recorder setDelegate:self]; 
     [recorder prepareToRecord]; 
     [recorder record]; 

Por encima de código es la grabación de audio en formato .wav. Si quiero grabar audio en MP3 usando la clave kAudioFormatMPEGLayer3 (mp3) en lugar de kAudioFormatLinearPCM (.wav) ¿qué otros cambios debo hacer? cambios en recordSetting diccionario, tales como frecuencia de muestreo, canal y todos

o sugerir cualquier formato de audio que es compatible tanto con iPhone y Android, de menor tamaño y se puede grabar directamente desde iPhone App

Por favor, ayuda y sugerir.

Gracias.

Respuesta

23

No puede grabar en MP3, es un formato propietario cuando se trata de codificar En g. Estos son los ajustes que uso, sale a ~ 150 KB durante 2 minutos de tiempo de grabación:

conversión
NSString *tempDir = NSTemporaryDirectory(); 
NSString *soundFilePath = [tempDir stringByAppendingPathComponent:@"sound.m4a"]; 

NSURL *soundFileURL = [NSURL fileURLWithPath:soundFilePath]; 
NSDictionary *recordSettings = [NSDictionary dictionaryWithObjectsAndKeys: 
            [NSNumber numberWithInt:kAudioFormatMPEG4AAC], AVFormatIDKey, 
            [NSNumber numberWithInt:AVAudioQualityMin], AVEncoderAudioQualityKey, 
            [NSNumber numberWithInt:16], AVEncoderBitRateKey, 
            [NSNumber numberWithInt: 1], AVNumberOfChannelsKey, 
            [NSNumber numberWithFloat:8000.0], AVSampleRateKey, 
            [NSNumber numberWithInt:8], AVLinearPCMBitDepthKey, 
            nil]; 

también haciendo es una operación intensa procesador, si va a enviar este audio a un servidor que puede utilizar FFMPEG con la biblioteca mp3lame para hacer conversión de audio en el servidor.

EDIT: este es el código para la grabación de Android, está configurado en codificación AMR porque AAC solo es compatible a partir de Honeycomb.

mediaRecorder = new MediaRecorder(); 
mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC); 
mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4); 
mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); 
mediaRecorder.setAudioChannels(1); 
mediaRecorder.setOutputFile("sample.m4a"); 
+0

Gracias por la ayuda, pero ¿cómo puedo obtener el archivo .AAC de esto como .m4a no es compatible con Android. Por favor, hágamelo saber. – ios

+1

Mi socio en desarrollo de Android me dio este http://developer.android.com/guide/appendix/media-formats.html allí puede ver que puede codificar en AAC en Android y guardar un archivo .m4a para que pueda tener el mismo formato .m4a para iOS y Android sin problema. – 8vius

+0

¿Logró resolver su problema, amigo? – 8vius

1

No puede grabar audio en archivo .mp3. kAudioFormatMPEGLayer3 es solo para playback the .mp3 format audio. Hay no codec available for .mp3 recording. Necesita grabar en el formato aac o wav y convertirlo al formato .mp3.

mejor echa un vistazo al siguiente enlace e imágenes:

Audio Recording Reference

enter image description here

Aquí se trata de un enlace para aprender lo básico para convertir el formato de audio:

Audio Converter Reference

Cuestiones relacionadas