iOS5效果单位应该使用什么流格式

iOS5效果单位应该使用什么流格式,ios,signal-processing,core-audio,audiounit,Ios,Signal Processing,Core Audio,Audiounit,我试着用一个低通滤波器。在将流格式设置为筛选器单元时,我不断收到KaudioUniter\u FormatNotSupported(-10868)错误,但如果我只使用远程IO单元,则不会出现错误 我使用的流格式是(更新的): 我将过滤流设置为: // Sets input stream type to ASBD setupErr = AudioUnitSetProperty(filterUnit, kAudioUnitProperty_StreamFormat, kAudioUnitScop

我试着用一个低通滤波器。在将流格式设置为筛选器单元时,我不断收到KaudioUniter\u FormatNotSupported(-10868)错误,但如果我只使用远程IO单元,则不会出现错误

我使用的流格式是(更新的):

我将过滤流设置为:

 // Sets input stream type to ASBD
 setupErr = AudioUnitSetProperty(filterUnit, kAudioUnitProperty_StreamFormat, kAudioUnitScope_Input, 0, &myASBD, sizeof(myASBD));
 NSLog(@"Filter in: %i", setupErr);

 //NSAssert(setupErr == noErr, @"No ASBD on Finput");


//Sets output stream type to ASBD
setupErr = AudioUnitSetProperty(filterUnit, kAudioUnitProperty_StreamFormat, kAudioUnitScope_Output, 0, &myASBD, sizeof(myASBD));
NSLog(@"Filter out: %i", setupErr);
NSAssert(setupErr == noErr, @"No ASBD on Foutput");

iOS滤波器音频单元的标准格式是8.24定点(线性PCM),即每个通道32位,而不是16位。

混响单元使用的是什么格式???我尝试录制缓冲区时出现了奇怪的错误……有关于此主题的新闻吗?

请尝试使用此标准格式

您需要确保所有音频单元ASBDs的配置是统一的

如果您正在进行繁重的音频处理,浮动(iOS5中支持)也不是一个坏主意


我尝试过使用32位通道,但仍然出现流格式错误。其他地方告诉我,iOS5中内置的AU效果也不使用规范格式。。我曾尝试使用AudioUnitGetProperty从过滤器单元获取流格式,但每次尝试都会收到一个错误。使用渲染回调并只使用当前的ASBD是更好的主意吗?您是否设置了类型fixed-point或float?这是Mac和iOS上的规范格式的一个区别。我已经更改了它,所以我没有使用浮点,但我仍然得到了错误。我不确定是否正确设置了过滤器ASBD,因为这是我得到错误的地方。
 // Sets input stream type to ASBD
 setupErr = AudioUnitSetProperty(filterUnit, kAudioUnitProperty_StreamFormat, kAudioUnitScope_Input, 0, &myASBD, sizeof(myASBD));
 NSLog(@"Filter in: %i", setupErr);

 //NSAssert(setupErr == noErr, @"No ASBD on Finput");


//Sets output stream type to ASBD
setupErr = AudioUnitSetProperty(filterUnit, kAudioUnitProperty_StreamFormat, kAudioUnitScope_Output, 0, &myASBD, sizeof(myASBD));
NSLog(@"Filter out: %i", setupErr);
NSAssert(setupErr == noErr, @"No ASBD on Foutput");
size_t bytesPerSample = sizeof (AudioUnitSampleType); //Default is 4 bytes
myASBD.mSampleRate        = hardwareSampleRate;
myASBD.mFormatID          = kAudioFormatLinearPCM;
myASBD.mFormatFlags       = kAudioFormatFlagsAudioUnitCanonical; //Canonical AU format
myASBD.mBytesPerPacket    = bytesPerSample;
myASBD.mFramesPerPacket   = 1;
myASBD.mBytesPerFrame     = bytesPerSample;
myASBD.mChannelsPerFrame  = 2;  //Stereo
myASBD.mBitsPerChannel    = 8 * bytesPerSample;  //32bit integer
size_t bytesPerSample     = sizeof (float); //float is 4 bytes
myASBD.mSampleRate        = hardwareSampleRate;
myASBD.mFormatID          = kAudioFormatLinearPCM;
myASBD.mFormatFlags       = kAudioFormatFlagIsFloat;
myASBD.mBytesPerPacket    = bytesPerSample;
myASBD.mFramesPerPacket   = 1;
myASBD.mBytesPerFrame     = bytesPerSample;
myASBD.mChannelsPerFrame  = 2;
myASBD.mBitsPerChannel    = 8 * bytesPerSample;  //32bit float