我是iOS及其C基础的新手,但不是一般的编程.我的困境是这样的.我正在基于AudioUnits的复杂应用程序中实现回声效果.该应用程序需要混响,回声和压缩等功能.但是,当我在我的应用程序中生成的音频样本使用特定的AudioStreamBasicDescription格式时,回声才有效.但是,此格式不适用于其他AudioUnits.虽然还有其他方法可以解决这个问题,但修复回声算法中的位错可能是最直接的方法.
与echo一起使用的*AudioStreamBasicDescription*具有mFormatFlag: kAudioFormatFlagsAudioUnitCanonical ; 具体是:
AudioUnit Stream Format (ECHO works, NO AUDIO UNITS)
Sample Rate: 44100
Format ID: lpcm
Format Flags: 3116 = kAudioFormatFlagsAudioUnitCanonical
Bytes per Packet: 4
Frames per Packet: 1
Bytes per Frame: 4
Channels per Frame: 2
Bits per Channel: 32
Set ASBD on input
Set ASBD on output
au SampleRate rate: 0.000000, 2 channels, 12 formatflags, 1819304813 mFormatID, 16 bits per channel
Run Code Online (Sandbox Code Playgroud)
除了mFormatFlag之外,与AudioUnit一起使用的流格式是相同的:kAudioFormatFlagIsFloat | kAudioFormatFlagsNativeEndian …