美文网首页
iOS - 录音和播放

iOS - 录音和播放

作者: CDLOG | 来源:发表于2018-08-16 04:11 被阅读13次

    利用系统框架AVFoundation实现录音和录音播放

    1,导入头文件

    #import <AVFoundation/AVFoundation.h>
    

    2,申请麦克风权限NSMicrophoneUsageDescription

    3,属性定义

    @property (nonatomic, strong) AVAudioRecorder * audioRecorder;//录音器
    
    @property (nonatomic, strong) AVAudioPlayer *player; //播放器
    @property (nonatomic, strong) NSURL *recordFileUrl; //文件地址
    -(AVAudioRecorder *)audioRecorder
    {
        if (!_audioRecorder) {
            // 1. 确定录音存放的位置
            NSString *path = [[NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject] stringByAppendingPathComponent:@"text.caf"];
            NSURL *url = [NSURL URLWithString:path];
    
    
            // 2. 设置录音参数
            NSMutableDictionary *recordSettings = [[NSMutableDictionary alloc] init];
            // 设置编码格式
            [recordSettings setValue :[NSNumber numberWithInt:kAudioFormatLinearPCM] forKey: AVFormatIDKey];
            // 采样率
            [recordSettings setValue :[NSNumber numberWithFloat:11025.0] forKey: AVSampleRateKey];
            // 通道数
            [recordSettings setValue :[NSNumber numberWithInt:2] forKey: AVNumberOfChannelsKey];
            //音频质量,采样质量
            [recordSettings setValue:[NSNumber numberWithInt:AVAudioQualityMin] forKey:AVEncoderAudioQualityKey];
    
            // 3. 创建录音对象
            _audioRecorder = [[AVAudioRecorder alloc] initWithURL:url settings:recordSettings error:nil];
        }
        return _audioRecorder;
    }
    

    4,开始录音

    //准备录音
    [self.audioRecorder prepareToRecord];
    //开始录音
    [self.audioRecorder record];
       // 几秒后开始录音
       // [self.audioRecorder recordAtTime:self.audioRecorder.deviceCurrentTime + 5];
      // 录音录多久
      //[self.audioRecorder recordForDuration:5];
    
    

    5,结束录音

      if (self.audioRecorder.currentTime>2) {
            [self.audioRecorder stop];
        }else{
            NSLog(@"录音时间不超过2秒,删除");
             [self.audioRecorder stop];
            [self.audioRecorder deleteRecording];
        }
    

    6,播放声音

    if ([self.player isPlaying])return;
        
        self.player = [[AVAudioPlayer alloc] initWithContentsOfURL:self.recordFileUrl error:nil];
        
        [self.player play];
    

    相关文章

      网友评论

          本文标题:iOS - 录音和播放

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