Итак, я нашел ответ на вопрос. Причина, по которой мой байтовый массив не смог поддерживать правильные заголовки, заключалась в том, что ключ, который я пропустил в переменной settings
AVAudioFileTypeKey: kAudioFileWAVEType
let settings: [String: Any] = [
AVSampleRateKey: 16000,
AVNumberOfChannelsKey: 1,
AVAudioFileTypeKey: kAudioFileWAVEType, //MANDATORY
AVFormatIDKey: kAudioFormatLinearPCM,
AVLinearPCMIsBigEndianKey: false,
AVLinearPCMIsNonInterleaved: true,
AVEncoderAudioQualityKey: AVAudioQuality.high.rawValue
]
Он был указан в документах что если вы не предоставите настройки, например
audioRecorder = try AVAudioRecorder(url: audioFilename!, settings: [:] /*empty settings*/)
, тогда
❌ Устройство записи AVAudio автоматически подготовит файл из формата определено в файле. 101
Но оказывается, что тоже не помогло ?
Так что, пока я играл с настройками, я нашел это очень важным ключ AVAudioFileTypeKey
, который помогал поддерживать правильные заголовки и, следовательно, действительный файл .wav
?
Вот так выглядит файл wav с действительными заголовками