Search code examples
iphoneobjective-caudiocore-audioavaudiorecorder

How to record an audio file in .mp3 format?


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.


Solution

  • 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.