ios - 关于AVAudioRecorder录音失败的问题
高洛峰
高洛峰 2017-04-17 14:56:03
0
2
1174
- (void)viewDidLoad { [super viewDidLoad]; NSArray *dirPath=NSSearchPathForDirectoriesInDomains(NSDocumentationDirectory, NSUserDomainMask, YES); NSString *docPath=[dirPath objectAtIndex:0]; NSString *filePath=[docPath stringByAppendingPathComponent:@"test1.wav"]; _url=[NSURL URLWithString:filePath]; NSDictionary *recordSettings=[NSDictionary dictionaryWithObjectsAndKeys: [NSNumber numberWithInt:AVAudioQualityMin], AVEncoderAudioQualityKey, [NSNumber numberWithInt:16], AVEncoderBitRateKey, [NSNumber numberWithInt:2], AVNumberOfChannelsKey, [NSNumber numberWithFloat:44100.0], AVSampleRateKey, nil]; NSError *error; //AVAudioRecorder *recorder; //AVAudioPlayer *player; _player=[[AVAudioPlayer alloc] initWithContentsOfURL:_url error:&error]; _recorder=[[AVAudioRecorder alloc] initWithURL:_url settings:recordSettings error:nil]; if (error) { NSLog(@"%@",[error localizedDescription]); }else{ [_recorder prepareToRecord]; } }

调试的时候显示_player的值为nil,还有报错: The operation couldn’t be completed. (OSStatus error 2003334207.)我没在网上找到答案。

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回覆 (2)
黄舟

_player的值为nil,这个应该是Xcode的BUG导致的,你如果用NSLog输出,_player应该是有值的。

  1. 记得给AVAudioRecorder设置代理
  2. iOS7及以上版本,增加了对录音功能的权限控制。你需要先判断应用程序有没有录音权限,如果应用程序不具备录音权限,提示用户打开。
    ,判断方法:
objectivec/// 新增API,获取录音权限. 返回值,YES为无拒绝,NO为拒绝录音. + (BOOL)canRecord { __block BOOL bCanRecord = YES; if ([[[UIDevice currentDevice]systemVersion]floatValue] >= 7.0) { AVAudioSession *audioSession = [AVAudioSession sharedInstance]; if ([audioSession respondsToSelector:@selector(requestRecordPermission:)]) { [audioSession performSelector:@selector(requestRecordPermission:) withObject:^(BOOL granted) { if (granted) { bCanRecord = YES; } else { bCanRecord = NO; } }]; } } return bCanRecord; }
  1. 以下代码让设备开启录音模式:
objectivecAVAudioSession *audioSession = [AVAudioSession sharedInstance]; [audioSession setCategory:AVAudioSessionCategoryPlayAndRecord error:nil]; [audioSession setActive:YES error:nil];
    小葫芦

    楼主,解决了嘛?我也遇到同样问题,估计是转wav格式出错了

      最新下載
      更多>
      網站特效
      網站源碼
      網站素材
      前端模板
      關於我們 免責聲明 Sitemap
      PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!