Настройки записи 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

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