应用程序在初始化AKMicrohone时崩溃。
-(void)setupFrequencyDetector{
@try {
AKSettings.audioInputEnabled = true;
//self.mic = [[AKMicrophone alloc]initWith:[[AVAudioFormat alloc]initWithCommonFormat:AVAudioPCMFormatFloat32 sampleRate:44100 channels:2 interleaved:true]];
self.mic = [[AKMicrophone alloc]initWith:[[AVAudioFormat alloc]initStandardFormatWithSampleRate:AVAudioPCMFormatFloat32 channels:2]];
self.tracker = [[AKFrequencyTracker alloc]init:self.mic hopSize:4096 peakCount:20];
self.silence = [[AKBooster alloc]init:self.tracker gain:0];
AudioKit.output = self.silence;
} @catch (NSException *exception) {
NSLog(@"Exception :%@",exception.description);
} @finally {}
}例外情况:必要条件为false: format.sampleRate == hwFormat.sampleRate AudioKit+StartStop.swift:start():34:尚未设置输出节点,将不会进行任何处理。
发布于 2019-08-28 12:54:32
通过设置音频格式和采样率解决了问题。
AVAudioFormat *audioFormat = [AudioKit.engine.inputNode inputFormatForBus:0];
AKSettings.sampleRate = audioFormat.sampleRate;
self.mic = [[AKMicrophone alloc]initWith:audioFormat];更新的职能:
-(void)setupFrequencyDetector{
@try {
AKSettings.audioInputEnabled = true;
AVAudioFormat *audioFormat = [AudioKit.engine.inputNode inputFormatForBus:0];
AKSettings.sampleRate = audioFormat.sampleRate;
self.mic = [[AKMicrophone alloc]initWith:audioFormat];
self.tracker = [[AKFrequencyTracker alloc]init:self.mic hopSize:4096 peakCount:20];
self.silence = [[AKBooster alloc]init:self.tracker gain:0];
AudioKit.output = self.silence;
} @catch (NSException *exception) {
NSLog(@"Exception :%@",exception.description);
} @finally {}}https://stackoverflow.com/questions/57669462
复制相似问题