iOSaudio单元播放与不断的噪音

我正在使用audio单元进行audio播放。 我已经从http://cocoawithlove.com/2010/10/ios-tone-generator-introduction-to.html下载了音源,并尝试使用它。 出于某种原因,我需要使用ulaw而不是线性PCM。 这是我的audio格式设置:

AudioStreamBasicDescription streamFormat; streamFormat.mSampleRate = 8000; streamFormat.mFormatID = kAudioFormatULaw; streamFormat.mFormatFlags = 0; streamFormat.mFramesPerPacket = 1; streamFormat.mBytesPerFrame = 2; streamFormat.mBytesPerPacket = streamFormat.mBytesPerFrame; streamFormat.mChannelsPerFrame = 1; streamFormat.mBitsPerChannel = 16; 

当我运行示例代码时,我得到一个不断的噪音。 有没有人可以帮助解决这个问题? 非常感谢。

您只能使用audio单元使用linearPCM格式。 即使kAudioUnitType_FormatConverter也提供了linearPCM格式之间的转换(采样率不同,bytesPerPacket等)。 要从压缩格式转换,你应该使用AudioConverter。

https://developer.apple.com/library/ios/#documentation/MusicAudio/Reference/AudioConverterServicesReference/Reference/reference.html

如果您想使用另一种不同于线性PCM的编解码器,则需要避免使用audio单元,因为它们只支持线性PCM。

但是,您可以使用audio队列,它们支持ULaw,ALaw等等。 如果延迟不是问题,请使用audio队列。