hardik hadwani
hardik hadwani

Reputation: 556

How to record audio in objective c for iphone app in .amr format?

I have used following code to record audio. It works perfectly for .caf format.

dirPaths = NSSearchPathForDirectoriesInDomains(
                                               NSDocumentDirectory, NSUserDomainMask, YES);
docsDir = [dirPaths objectAtIndex:0];
NSString *soundFilePath = [docsDir
                           stringByAppendingPathComponent:@"sound.caf"];

NSURL *soundFileURL = [NSURL fileURLWithPath:soundFilePath];

NSDictionary *recordSettings = [NSDictionary
                                dictionaryWithObjectsAndKeys:
                                [NSNumber numberWithInt:AVAudioQualityMin],
                                AVEncoderAudioQualityKey,
                                [NSNumber numberWithInt:16],
                                AVEncoderBitRateKey,
                                [NSNumber numberWithInt: 2],
                                AVNumberOfChannelsKey,
                                [NSNumber numberWithFloat:44100.0],
                                AVSampleRateKey,
                                nil];

NSError *error = nil;

audioRecorder = [[AVAudioRecorder alloc]
                 initWithURL:soundFileURL
                 settings:recordSettings
                 error:&error];

But for .amr if i change extension to .amr as per below it is not working for me to record audio.

NSString *soundFilePath = [docsDir
                       stringByAppendingPathComponent:@"sound.amr"];

can any body guide me how to record and save audio in .amr format?

Upvotes: 0

Views: 853

Answers (1)

Mehul
Mehul

Reputation: 3178

try below Code, might be useful to you..

AppDelegate *del = (AppDelegate*)[[UIApplication sharedApplication]delegate];
//set path & name for Recording Audio
                NSString *dataPath=[del.path_Folder_Document copy];
                NSString *filePath = [NSString stringWithFormat:@"%@/Images_Audio/%@.3gp", dataPath,[ARR_Img_File_Name_Moment objectAtIndex:pos]];
                NSLog(@"Audio File Path =%@",filePath);

                NSURL *tmpFileUrl = [NSURL fileURLWithPath:filePath];
//set Record Setting 
                NSDictionary *recordSettings = [NSDictionary dictionaryWithObjectsAndKeys:
                                                [NSNumber numberWithInt: kAudioFormatMPEG4AAC], AVFormatIDKey,
                                                [NSNumber numberWithFloat:8000.0], AVSampleRateKey,
                                                [NSNumber numberWithInt: 1], AVNumberOfChannelsKey,
                                                nil];

                NSError *error = nil;
//Prepare Recorder to Start Recording Audio
                recorder = [[AVAudioRecorder alloc] initWithURL:tmpFileUrl settings:recordSettings error:&error];
                recorder.delegate = self;
                [recorder prepareToRecord];

                AVAudioSession *session = [AVAudioSession sharedInstance];
                [session setCategory:AVAudioSessionCategoryRecord error:nil];
                [session setActive:YES error:nil];
//Start Recording Audio ..

                if ([[NSFileManager defaultManager] isWritableFileAtPath:filePath]) {
                    NSLog(@"Writable Pathforimage_Audio 1st>> %@", filePath);

                }else
                {
                    NSLog(@"Not Writable");
                }

                [recorder record];

                NSLog(@"its recording audio...");

Upvotes: 1

Related Questions