我想使用 AVAudioFile 将音频缓冲区编码为 M4A/AAC 文件。它的工作原理是输出文件始终是具有可变比特率的 AAC,即使我使用特定的恒定比特率标志配置 AVAudioFile 也是如此。
这是 AVAudioFile 初始化的代码:
NSDictionary* outputSettings = @{
AVFormatIDKey: [NSNumber numberWithUnsignedInt:kAudioFormatMPEG4AAC],
AVNumberOfChannelsKey: [NSNumber numberWithInt:2],
AVEncoderBitRateKey: [NSNumber numberWithInt:128000],
AVEncoderBitRateStrategyKey: AVAudioBitRateStrategy_Constant /* should output constant bitrate AAC, but doesn't */
};
AVAudioFile *outputFile = [[AVAudioFile alloc] initForWriting:outputURL
settings:outputSettings
commonFormat:AVAudioPCMFormatFloat32
interleaved:NO
error:&error];
AVAudioFile 是否支持恒定比特率 AAC?文档对此并不清楚。