How to record an audio file in .mp3 format?

iPhoneDev picture iPhoneDev · Feb 2, 2011 · Viewed 19.5k times · Source

I am using the following settings for recording audio file in .mp3 format using AVAudioRecorder.

NSDictionary *recordSettings = [[NSDictionary alloc] initWithObjectsAndKeys:

                                        [NSNumber numberWithFloat: 44100.0],AVSampleRateKey,
                                        [NSNumber numberWithInt: kAudioFormatMPEGLayer3],AVFormatIDKey,
                                        [NSNumber numberWithInt: 1], AVNumberOfChannelsKey,
                                        [NSNumber numberWithInt: AVAudioQualityMax],AVEncoderAudioQualityKey,nil];

But not able to record with these. I searched a lot for this but wasn't able to get some relevant post. Some posts say that it is not possible.If its not possible then why so? Please answer.

Answer

raaz picture raaz · Feb 2, 2011

The Problem is kAudioFormatMPEGLayer3 which is not supported by AVAudioRecorder.

Alternatively you can use kAudioFormatAppleIMA4 for your recording purpose.

Finally you can write your own encoding logic to convert kAudioFormatAppleIMA4 in to MP3 Format.

The other supported encoding for Recording purpose are

kAudioFormatMPEG4AAC   
kAudioFormatAppleLossless  
kAudioFormatAppleIMA4   
kAudioFormatiLBC 
kAudioFormatULaw 
kAudioFormatLinearPCM 

For more info you can refer to this post of SO.