我已成功使用这些录制设置来创建格式化为所需格式的音频。但是这些设置似乎只适用于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];
答案 0 :(得分:0)
Per Apple支持: 这就是错误 - 文件被创建,一些样本被成功写入然后追加开始失败,原因不明。
这些设置和AVAssetWriter
似乎只会出现这个错误AudioQueue应该用于ulaw音频