AVAssetWriterlogging设置不像AVAudioRecorder一样工作

我已成功使用这些录制设置来创build格式化为所需格式的audio。 但是,这些设置似乎只适用于AVAudioRecorder。 当我用AVAssetWriter尝试他们时,我得到一个错误,指出AVLinearPCMBitDepthKey需要AVLinearPCMBitFloatKey,但是当我添加它说它不允许'ulaw'。 我的问题是为什么AVLinearPCMBitDepthKey在一个logging器中工作正常,但不是另一个?

[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]; 

每苹果支持:这就是错误 – 文件被创build,一些样本被写入成功,然后追加启动失败,原因不明。

这个错误似乎只发生在这些设置和AVAssetWriter

AudioQueue是应该用于ulawaudio