AVAudioRecorder [запись рекордера] всегда возвращает NO - PullRequest
1 голос
/ 07 декабря 2011

У меня проблема с функциями записи моего приложения:

Каталог записи: / Document / Recordings /

[recordingSettings setValue:[NSNumber numberWithInt:kAudioFormatAppleIMA4] forKey:AVFormatIDKey];
[recordingSettings setValue:[NSNumber numberWithFloat:44100.0] forKey:AVSampleRateKey]; 
[recordingSettings setValue:[NSNumber numberWithInt:1] forKey:AVNumberOfChannelsKey];
[recordingSettings setValue:[NSNumber numberWithInt:AVAudioQualityMax] forKey:AVEncoderAudioQualityKey];

NSURL *url = [NSURL fileURLWithPath:[[GlobalRecording recordingDirectory] stringByAppendingPathComponent:currentFileName]];
NSError *err = nil;
AVAudioRecorder *aRecorder = [[AVAudioRecorder alloc] initWithURL:url settings:recordingSettings error:&err];
if( err ){
    NSLog(@"could not create a recorder: %@ %d %@", [err domain], [err code], [[err userInfo] description]);
    return;
}

[aRecorder setDelegate:self];
aRecorder.meteringEnabled = YES;
BOOL temp = [aRecorder prepareToRecord];
if (temp) {
    NSLog(@"Prepare TRUE");
} else {
    NSLog(@"Prepare FALSE");
}
temp = [aRecorder record];
if (temp) {
    NSLog(@"Record TRUE");
} else {
    NSLog(@"Record FALSE");
}

Проблема в том, что [aRecorder prepareToRecord] всегда возвращает TRUE, чтосоздаст файл записи в системе (/ Document / Recordings).Но [aRecorder record], этот метод для начала записи, всегда возвращает FALSE.Это сделает запись файла размером 0 байт, ничего с этим не поделаешь.

Надеюсь, кто-нибудь уже сталкивался с этой проблемой и помог мне.Спасибо.

1 Ответ

0 голосов
/ 10 мая 2012

Если вы инициализируете SimpleAudioEngine перед AVAudioRecorder, это может быть проблемой. Потому что это может переопределить вашу AVAudioSession setCategory . Поэтому комментировать все [SimpleAudioEngine SharedEngine] в вашем классе, это может work.:)

...