我刚刚构建并测试了一个基本的AVAudioRecorder / AVAudioPlayer录音机和播放器。最终我得到了这个设备,以及模拟器。我的播放器/录像机代码在一个UIView子类中。不幸的是,当我将类复制到我的主项目中时,它不再有效(在设备上 - 模拟器很好)。 prepareToRecord
工作正常,但record
不是。这是一些代码:
audioRecorder = [[ AVAudioRecorder alloc] initWithURL:url settings:recordSettings error:&error];
if ([audioRecorder prepareToRecord]){
audioRecorder.meteringEnabled = YES;
if(![audioRecorder record])NSLog(@"recording failed!");
}else {
int errorCode = CFSwapInt32HostToBig ([error code]);
NSLog(@"preparedToRecord=NO Error: %@ [%4.4s])" , [error localizedDescription], (char*)&errorCode);
...
我得到“录音失败”。任何人都有任何想法为什么会这样?
答案 0 :(得分:1)
完整的解决方案是将[SimpleAudioEngine sharedEngine]
初始化移至我自己的AVAudioSession setCategory
之前。我想在SimpleAudioEngine
的某个地方做了setCategory :AVAudioSessionCategoryAmbient
。用我自己的setCategory :AVAudioSessionCategoryPlayAndRecord
覆盖它会使一切正常。