0

我已经成功地使用这些录制设置来创建格式化为所需格式的音频。然而,这些设置似乎只适用于 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];
4

1 回答 1

0

根据 Apple 支持:因此这是错误 - 文件已创建,许多示例已成功写入,然后附加开始由于某种未知原因而失败。

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

AudioQueue 应该用于 ulaw 音频

于 2012-07-05T14:03:55.767 回答