我正在使用音频设备进行音频播放。我已经从http://cocoawithlove.com/2010/10/ios-tone-generator-introduction-to.html下载了音频发生器并尝试使用它。出于某种原因,我需要使用ulaw而不是线性PCM。这是我的音频格式设置:
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;
当我运行示例代码时,我得到一个恒定的噪音。有人可以帮忙解决这个问题吗?非常感谢。
答案 0 :(得分:1)
您只能使用音频单元使用linearPCM格式。甚至kAudioUnitType_FormatConverter也提供了线性PCM格式之间的转换(具有不同的采样率,bytesPerPacket等)。要从压缩格式转换,您应该使用AudioConverter。
答案 1 :(得分:0)
如果您想使用与Linear PCM不同的其他编解码器,则需要避免音频单元,因为它们仅支持线性PCM。
但是,您可以使用音频队列,它们支持ULaw,ALaw等。如果延迟不是问题,请使用音频队列。