Domain=NSOSStatusErrorDomain Code=1937337955 关于iOS录音AVAudioRecorder与音频播放AVAudioPlayer真机调试录音不能播放的问题

是这样的:我想做一个录音功能,录音之后能够播放出来,,,,

但是无情的BUG伤害了我....

1.首先我注册了录音

 //注册录音

     [[AVAudioSessionsharedInstance]setCategory:AVAudioSessionCategoryRecorderror:&error];

     if (error) {

          NSLog(@"注册录音失败%@",error);

          return;

     }

2.设置保存路径

//设置路径

 NSString *docPath=[NSSearchPathForDirectoriesInDomains(NSCachesDirectory,NSUserDomainMask,YES)lastObject];

     NSString *filePath=[docPathstringByAppendingPathComponent:@"hello.AAC"];

     NSLog(@"%@",filePath);

     NSURL *fileURL=[NSURLfileURLWithPath:filePath];

     

3.设置设置参数

 //录音:音频文件最小

     //    //settings 设置参数 录音相关参数 声道 速率 采样率

     NSMutableDictionary *setting = [NSMutableDictionarydictionary];

     //2.设置  录音参数

     //音频格式

     setting[AVFormatIDKey] =@(kAudioFormatMPEG4AAC);

     //音频采样率

     setting[AVSampleRateKey] =@(16000.0);

     //音频通道数

     setting[AVNumberOfChannelsKey] =@(1);

     //线性音频的位深度

     setting[AVLinearPCMBitDepthKey] =@(8);

     //音频编码质量

     setting[AVEncoderAudioQualityKey] =@(AVAudioQualityMin);

    

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

     

     

     [self.recorderprepareToRecord];


    //点击按钮 调用recod方法  开始录音

 [self.recorderrecord];



重点是录音之后....读取的时候我们要将会话模式改回后台播放模式

  [[AVAudioSessionsharedInstance]setCategory:AVAudioSessionCategoryPlaybackerror:nil];


用这个方法创建音乐播放器: _player =[[AVAudioPlayeralloc] initWithContentsOfURL:fileURLerror:&error];



  但是这样我测试了,用AVAudioPlayer可以播放bundle路径里面的音乐,但是还是不能读取沙盒中的录音...!!!!



报出error:Domain=NSOSStatusErrorDomain Code=1937337955 这样的错误,这个错误很常见,原因是因为我们需要调用另外一个AVAudioPlayer 的初始化方法,来确定音频的解析模式.这个方法是:

NSData *data = [NSData dataWithContentsOfURL:fileURL];

_player = [[AVAudioPlayer alloc] initWithData:data fileTypeHint:AVFileTypeWAVE error:&error];

我们可以在ileTypeHint:参数中设置解析的模式,,一般 AAC类型的和WAV类型的音频文件,我们设置为AVFileTypeWAVE 解析模式就可以读取了,这样就完美的解决了沙盒录音及播放的问题..





  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值