AVAudioRecorder prepareToRecord работает, но запись не удается

Я только что собрал и протестировал базовый звукозаписывающее устройство и проигрыватель 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); 
...

Я получаю "запись не удалась". У кого-нибудь есть идеи, почему это происходит?

1 ответ

Решение

Полное решение состояло в том, чтобы переместить [SimpleAudioEngine sharedEngine] инициализация до моего собственного AVAudioSession setCategory, Я думаю где-то в SimpleAudioEngine, это делает setCategory :AVAudioSessionCategoryAmbient, Переопределив это с моим собственным setCategory :AVAudioSessionCategoryPlayAndRecord позже заставляет все работать.

Другие вопросы по тегам