美文网首页
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 -简单录音实现

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

  • iOS中音频的录制和播放

    实现思路 利用系统框架AVFoundation实现录音和录音播放 AudioSession简介 iOS 通过ses...

  • iOS 录音实现

    需求 某处功能加上录音功能,时间大概60秒,上传到服务器,服务器要求文件大小控制在1M以内。 实现思路 利用系统框...

  • iOS 录音简单使用

    创建录音对象 开始录音 结束录音

  • iOS实现录音功能

    ps:文章内容的代码部分,由于不便暴露业务逻辑,可能会有部分删减,但是主体功能基本保留 背景 这段时间应公司业务需...

  • iOS 实现录音功能

    参考资料 https://www.jianshu.com/p/fb7dfb033989 音频文件相关知识 文件格式...

  • iOS 实现录音功能

    #pragma mark ===== 录制音频初始化 -(void)saveAudio{ AVAudioSes...

  • 超简单实现iOS列表的索引功能

    超简单实现iOS列表的索引功能 超简单实现iOS列表的索引功能

  • iOS 录音-上传与播放解析

    title : iOS 录音-上传与播放解析category : IOS iOS 录音-上传与播放解析 标签(...

  • Android简单实现录音功能

    最近项目APP遇到需要添加录音功能,由于我是Java,半路出道做Android,所以第一想到的就是百度... 然而...

网友评论

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

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