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 吗?

是否可以使用 AVAssetWriter 完全裁剪视频?

无法在 iphone 3G 上使用 AVAssetWriter 从 UIImage 数组制作电影

AVAssetWriter视频数据编码

AVAssetWriter / AVAudioPlayer 冲突?