Настройки записи AVAssetWriter не работают как AVAudioRecorder
Я успешно использовал эти настройки записи для создания аудио в нужном формате. Однако эти настройки работали только с AVAudioRecorder. Когда я пробую их с помощью AVAssetWriter, я получаю сообщение об ошибке, утверждающее, что AVLinearPCMBitDepthKey требует AVLinearPCMBitFloatKey, но когда я добавляю, он говорит, что он не разрешен для "ulaw". У меня вопрос, почему AVLinearPCMBitDepthKey нормально работает на одном рекордере, а на другом нет?
[recordSettings setObject:[NSNumber numberWithInt: kAudioFormatULaw] forKey: AVFormatIDKey];
[recordSettings setObject:[NSNumber numberWithFloat:8000.0] forKey: AVSampleRateKey];//was 44100.0
[recordSettings setObject:[NSNumber numberWithInt:1] forKey:AVNumberOfChannelsKey];
[recordSettings setObject:[NSNumber numberWithInt:8000] forKey:AVEncoderBitRateKey];//was 64000
[recordSettings setObject:[NSNumber numberWithInt:16] forKey:AVLinearPCMBitDepthKey];
[recordSettings setObject:[NSNumber numberWithInt: AVAudioQualityLow] forKey: AVEncoderAudioQualityKey];
1 ответ
Решение
Поддержка Apple: поэтому это ошибка - файл создан, несколько примеров успешно записаны, а затем происходит сбой добавления по неизвестной причине.
Ошибка, кажется, только с этими настройками и AVAssetWriter
AudioQueue - это то, что следует использовать для аудио ulaw