我使用AVAudioFormat..我需要改变它的AVFormatIDKey,但它不工作。这里是mycode
_format = [[AVAudioFormat alloc] initWithCommonFormat:AVAudioPCMFormatFloat32 sampleRate:kAudRecordingSampleRate channels:1 interleaved:false ];
我已经尝试了以下事情,但不工作
NSMutableDictionary *recordSettings = _format.settings.mutableCopy;
[recordSettings1 addEntriesFromDictionary:@{
AVFormatIDKey : @(kAudioFormatMPEG4AAC),
AVEncoderAudioQualityKey : @(AVAudioQualityMedium),
}];
我曾尝试@sbooth设置RecordingSetting,但在混音器连接上崩溃
_format = [[AVAudioFormat alloc] initWithSettings:recordSettings];
AVAudioMixerNode *mainMixer = engine.mainMixerNode;
[engine connect:mixer to:engine.mainMixerNode format:_format]; // crash line
崩溃日志
[AUInterface。mm: 536: SetFormat:([[busArrayobjectAtIndexedSubscript:(了NSUInteger)元素]setFormat:格式error:&nsErr])]返回false, error错误域名=NSOSStatusErrorDomain Code=-10868 "(null)">
错误-10868是kAudioUnitErr_FormatNotSupported
.
AVAudioEngine或多或少需要PCM处理,所以尝试使用像AAC这样的格式是不太可能工作的。要获得压缩输出,您可以使用AVAudioConverter
(或AVAudioFile
)并在手动渲染模式下运行图形,并使用AVAudioConverter
处理输出。