我有一个init:
bool b;
NSLog(@"url");
NSURL *url = [NSURL fileURLWithPath:@"/dev/null"];
NSLog(@"dizionario");
NSDictionary *audioSettings = [NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithFloat: 44100.0], AVSampleRateKey,
[NSNumber numberWithInt: kAudioFormatAppleLossless], AVFormatIDKey,
[NSNumber numberWithInt: 1], AVNumberOfChannelsKey,
[NSNumber numberWithInt: AVAudioQualityMax], AVEncoderAudioQualityKey,
nil];
NSError *error;
recorder = [[AVAudioRecorder alloc] initWithURL:url settings:audioSettings error:&error];
NSLog(@"audio");
if (recorder) {
//NSLog(@"prepara");
[recorder prepareToRecord];
//NSLog(@"meter");
recorder.meteringEnabled = YES;
//NSLog(@"recorder");
b=[recorder record];
NSLog(@"%@",(b ? @"OK" : @"here it FAILS"));
} else {
NSLog(@"ERRORE:");
NSLog([error description]);
}
//NSLog(@"fine init");
因为我使用[记录器记录]失败。 我怎么知道为什么这个方法失败了? 我该如何处理这个问题? 感谢
答案 0 :(得分:2)
我也遇到了可以在模拟器中录制而不是设备的问题。更改为使用NSTemporaryDirectory()
为我工作。
recordPath = [NSTemporaryDirectory() stringByAppendingPathComponent:@"Sound.m4a"];
NSURL *url = [NSURL fileURLWithPath:recordPath];
答案 1 :(得分:1)
您必须设置AVAudioSession。 看看这个link我认为它可以帮到你。
如果您在同一个应用程序中使用记录和播放,请不要忘记在代码中激活AVAudioSession。
答案 2 :(得分:0)
我写了一个类似的问题,但在发布之前找到了我的答案here。你能在设备上写“/ dev / null”吗?那是一个目录吗?在发布问题之前一定要搜索答案: - (。