AVAssetWriter 记录设置不像 AVAudioRecorder 那样工作
Posted
技术标签:
【中文标题】AVAssetWriter 记录设置不像 AVAudioRecorder 那样工作【英文标题】:AVAssetWriter record settings not working like AVAudioRecorder 【发布时间】:2012-06-25 14:36:30 【问题描述】:我已成功使用这些录制设置来创建格式化为所需格式的音频。然而,这些设置似乎只适用于 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];
【问题讨论】:
【参考方案1】:根据 Apple 支持: 因此,这就是错误 - 文件已创建,许多示例已成功写入,然后附加开始由于某种未知原因而失败。
错误似乎只发生在这些设置和 AVAssetWriter 上
AudioQueue 应该用于 ulaw 音频
【讨论】:
以上是关于AVAssetWriter 记录设置不像 AVAudioRecorder 那样工作的主要内容,如果未能解决你的问题,请参考以下文章
使用 AVAssetWriter 和 CoreML 的相机上的 FPS 不一致
我可以使用 AVAssetWriter 代替 AVExportSession 吗?