Подтвердить что ты не робот

Ошибка OSStatus 1718449215

Я создал приложение для iPhone, чтобы записать наш голос. Когда я пытаюсь записать, я получаю сообщение об ошибке в следующем выражении.


recorder = [[ AVAudioRecorder alloc] initWithURL:url settings:recordSetting error:&err];

Ошибка домена = NSOSStatusErrorDomain Code = 1718449215 "Операция не может быть завершена (ошибка OSStatus 1718449215.)"

Если я попытался записать в .caf файл, он работает нормально. Если я попытался с .m4a, я получаю это сообщение об ошибке.

Пожалуйста, помогите мне решить проблему.

Спасибо.

4b9b3361

Ответ 1

1718449215 - это десятичное представление четырехсимвольного кода для ошибки kAudioFormatUnsupportedDataFormatError.

В общем вы можете использовать что-то вроде этого, чтобы получить больше информации от полученных вами ошибок:

NSError *error = [NSError errorWithDomain:NSOSStatusErrorDomain
                          code:my_error_code
                          userInfo:nil];
NSLog(@"Error: %@", [error description]);

Ответ 2

Коды ошибок OSStatus - это боль, они часто слишком общие, чтобы помочь. Вы пытались декодировать код ошибки <- w980 > ? Иногда это помогает (иногда вы просто получаете мусор). Создайте и покажите нам минимальный пример кода, который показывает проблему. В этом случае я уверен, что код four- char составляет fmt?. Google для числового кода, и вы должны быть мудрее.

Ответ 3

В случае, если это помогает другим: у меня была такая же ошибка, и это было вызвано попыткой создания/использования аудиофайлов в неправильном формате. Я предустановил запись для создания файла .caf, но вместо этого вызвал файл xxx.wav.

Ответ 4

Я также столкнулся с этой проблемой, когда я преобразовал тип файла в .mp3, а ранее использовал формат .caf для записи звука с помощью AVAudioRecorder. Я снова преобразовал формат файла в формат .caf, и он работает. Вы можете использовать следующие форматы

AAC, PCM, IMA4, ULAW, ILBC

Ответ 5

"NSDictionary", если он пуст, по умолчанию используется высокое качество, если вы установите, это значение будет очень низким, вы можете попытаться отменить эти параметры:

setting[AVFormatIDKey] = @(kAudioFormatAppleIMA4);
setting[AVSampleRateKey] = @(600.0);
setting[AVNumberOfChannelsKey] = @(1);
setting[AVLinearPCMBitDepthKey] = @(8);

Ответ 6

Если вы используете код c или cpp, вы можете это сделать.

char code[4];
*((SInt32*)&code[0]) = error;

Ответ 7

UInt32 code = CFSwapInt32HostToBig(error);
NSLog(@"%4.4s"(char *)&code);