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
позже заставляет все работать.