为什么这样做?
- (void)setupAudioFormat:(AudioStreamBasicDescription*)format
{
format->mSampleRate = 44100;
format->mFormatID = kAudioFormatLinearPCM;
format->mFramesPerPacket = 1;
format->mChannelsPerFrame = 1;
format->mBytesPerFrame = 2;
format->mBytesPerPacket = 2;
format->mBitsPerChannel = 32;
format->mReserved = 0;
format->mFormatFlags = kLinearPCMFormatFlagIsBigEndian |
kLinearPCMFormatFlagIsSignedInteger |
kLinearPCMFormatFlagIsPacked;
}
但是当我改变mFormatFlag它没有,我得到一个kAudioFileUnsupportedDataFormatError。
format->mFormatFlags = kAudioFormatFlagIsFloat |
kLinearPCMFormatFlagIsBigEndian |
kAudioFormatFlagIsPacked;
我在收到电话时收到错误...
OSStatus status = AudioQueueNewInput(&recordState.dataFormat,
AudioInputCallback,
self,
CFRunLoopGetCurrent(),
kCFRunLoopCommonModes,
0,
&recordState.queue);
我确定问题在于格式标志,因为错误只发生在我尝试使用浮动标志时,任何想法如何解决它?
非常感谢。
答案 0 :(得分:1)
很简单,但很难回答并花了很多时间,但看起来不支持花车。感谢。
答案 1 :(得分:0)
可接受的答案可能适用于iOS 2.x,但对于任何最新的(64位)iOS设备,32位浮点数实际上是音频单元样本的本机格式。