美文网首页
ios -简单录音实现

ios -简单录音实现

作者: 低调的腹 | 来源:发表于2018-08-06 21:07 被阅读0次

    最近要用过录音功能,搜罗了些方法 ,发现只需要使用ios提供的类就可实现

    录音方法:

    - (void)startRecord{

        [_activityView startAnimating];

        AVAudioSession *session =[AVAudioSession sharedInstance];

        NSError *sessionError;

        [session setCategory:AVAudioSessionCategoryPlayAndRecord error:&sessionError];

        if (session == nil) {

            NSLog(@"Error creating session: %@",[sessionError description]);

        }else{

            [session setActive:YES error:nil];

        }

        self.session = session;

        //1.获取沙盒地址

        NSString *path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];

        self.filePath = [path stringByAppendingString:@"/RRecord.wav"];

        //2.获取文件路径

        self.recordFileUrl = [NSURL fileURLWithPath:self.filePath];

        //设置参数

        NSDictionary *recordSetting = [[NSDictionary alloc] initWithObjectsAndKeys:

                                      //采样率  8000/11025/22050/44100/96000(影响音频的质量)

                                      [NSNumber numberWithFloat: 8000.0],AVSampleRateKey,

                                      // 音频格式

                                      [NSNumber numberWithInt: kAudioFormatLinearPCM],AVFormatIDKey,

                                      //采样位数  8、16、24、32 默认为16

                                      [NSNumber numberWithInt:16],AVLinearPCMBitDepthKey,

                                      // 音频通道数 1 或 2

                                      [NSNumber numberWithInt: 1], AVNumberOfChannelsKey,

                                      //录音质量

                                      [NSNumber numberWithInt:AVAudioQualityHigh],AVEncoderAudioQualityKey,

                                      nil];

        _recorder = [[AVAudioRecorder alloc] initWithURL:self.recordFileUrl settings:recordSetting error:nil];

        if (_recorder) {

            _recorder.meteringEnabled = YES;

            [_recorder prepareToRecord];

            [_recorder record];

    //        dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(60 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{

    //

    ////            [self stopRecord:nil];

    //        });

        }else{

            NSLog(@"音频格式和文件存储格式不匹配,无法初始化Recorder");

        }

    }

    停止录音方法:

    - (void)stop_sendToService{

        //如果正在录音 就停止

        [_activityView stopAnimating];

        if ([self.recorder isRecording]) {

            [self.recorder stop];

        }

        NSFileManager *manager = [NSFileManager defaultManager];

        if ([manager fileExistsAtPath:self.filePath]){

            NSLog(@"%@",[NSString stringWithFormat:@"文件大小为 %.2fKb",[[manager attributesOfItemAtPath:self.filePath error:nil] fileSize]/1024.0]);

        }else{

        }

        //同时将文件上传

        [self sendToService];

    }

    ok  结束 

    相关文章

      网友评论

          本文标题:ios -简单录音实现

          本文链接:https://www.haomeiwen.com/subject/zyqnvftx.html