录音的基本操作

本文介绍了在iOS中使用AVAudioRecorder进行录音的基本操作,包括开始录音、暂停、取消和停止录音的实现方法,以及如何设置音频文件的保存路径和录音格式。
摘要由CSDN通过智能技术生成


#pragma mark - 开始录制,暂停、撤销 功能

//MUtilities方法

+ (NSString*) getAudioFileDateTimeString

{

NSDateFormatter* dateFormater= [[NSDateFormatteralloc] init];

[dateFormater setDateFormat: @"yyyy-MM-dd-HH-mm-ss"];

    //NSMutableString* str = [NSMutableString new];

NSString* ret = [dateFormaterstringFromDate:[NSDatedate]];

[retretain];

[dateFormaterrelease];

   NSString* str = [[NSStringalloc ] initWithFormat:@"%@.m4a",ret];

    NSLog(@"file name %@ ",str);

return [strautorelease];

}


-(void)beginRecord

{

    NSString *documentDir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES) objectAtIndex:0] ;

    //定义音频文件的路径和名字

   NSString* doc = [NSStringstringWithFormat:@"%@/%@/%@/%@",documentDir,self.userName,self.userName,[MUtilitiesgetAudioFileDateTimeString]];

    audioFilePath = doc;

    

    //定义一个音频录制格式的字典

    NSMutableDictionary *recordSetting = [[NSMutableDictionaryalloc] init];


    [recordSetting setValue :[NSNumbernumberWithInt:kAudioFormatMPEG4AAC]forKey:AVFormatIDKey];

    [recordSetting setValue:[NSNumbernumberWithFloat:16000.0]forKey:AVSampleRateKey];

    [recordSetting setValue :[NSNumbernumberWithInt:16]forKey:AVLinearPCMBitDepthKey];

    [recordSetting setValue :[NSNumbernumberWithBool:NO]forKey:AVLinearPCMIsBigEndianKey];

    [recordSettingsetValue :[NSNumbernumberWithBool:NO]forKey:AVLinearPCMIsFloatKey];//

    [recordSetting setValue:[NSNumbernumberWithInt:2]forKey:AVNumberOfChannelsKey];//声道


   NSURL *fileURL=[[NSURLalloc]initFileURLWithPath:doc];

   NSError * error;

   self.recorder=[[AVAudioRecorderalloc]initWithURL:fileURLsettings:recordSetting error:&error];

    //最长录音时间

    [self.recorderrecordForDuration:(NSTimeInterval)4.0 * 60.0];

   NSError * error1;

    AVAudioSession *session = [AVAudioSessionsharedInstance];

    [session setCategory:AVAudioSessionCategoryRecorderror:&error1];


    [self.recorderprepareToRecord];

    [self.recordersetDelegate:self];

    [self.recorderrecord];

        

}

#pragma mark - 取消录音

- (void)clickAudioCancel: (id) sender

{

      [selfremoveAudio];

}

#pragma mark - 停止录音

-(void)stopRecord

{

    if(self.recorder.recording)

    {

        [self.recorderstop];

    }

}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值