iOS 创建录音文件时出现 kAudioFileUnsupportedDataFormatError

iOS kAudioFileUnsupportedDataFormatError while creating Audio File for recording

我正在使用 ExtAudioFileCreateWithURL,并且在创建立体声 LPCM Float32 Wave 文件时一直出现运行时 kAudioFileUnsupportedDataFormatError 错误。我坚持认为同样的过程对单声道(单通道)文件也能正常工作。有什么提示吗?

这是代码片段:

let audioType: AudioFileTypeID = kAudioFileWAVEType 
var recordingFormatStream = CAStreamBasicDescription(sampleRate: sampleRate, numChannels: 2, pcmf: .Float32, isInterleaved: false)!

err = ExtAudioFileCreateWithURL(audioFileRecordingURL,
                                    audioType,
                                    &recordingFormatStream,
                                    nil,
                                    AudioFileFlags.EraseFile.rawValue,
                                    &audioRecordingAudioFile)

注意到 audioFileRecordingURLaudioRecordingAudioFile 的输入和设置是正确的。

作为记录,recordingFormatStream 包含:

mFormatFlags = kAudioFormatFlagsNativeEndian | kAudioFormatFlagIsPacked | kAudioFormatFlagIsFloat | kAudioFormatFlagIsNonInterleaved
mFormatID = kAudioFormatLinearPCM
mSampleRate: 44100.0
mBytesPerPacket: 4, mFramesPerPacket: 1, mBytesPerFrame: 4, mChannelsPerFrame: 2, mBitsPerChannel: 32, mReserved: 0

我坚持把numChannels改成1就万事大吉了!使用 iOS 9.3 SDK。

经过一番努力:SDK 中的 ExtAudioFile 方法 不接受非交错音频 。我相信这在某种程度上是新的!

多亏了这个post: