Iphone 谁知道我为什么能’;对于音频流基本描述,是否使用kAudioFormatFlagIsFloat而不是KaudioFormatFlagIsSignedIntegrater?
为什么这样做有效Iphone 谁知道我为什么能’;对于音频流基本描述,是否使用kAudioFormatFlagIsFloat而不是KaudioFormatFlagIsSignedIntegrater?,iphone,Iphone,为什么这样做有效 - (void)setupAudioFormat:(AudioStreamBasicDescription*)format { format->mSampleRate = 44100; format->mFormatID = kAudioFormatLinearPCM; format->mFramesPerPacket = 1; format->mChannelsPerFrame = 1; format->
- (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);
我确信问题在于格式标志,因为只有当我尝试使用float标志时才会发生错误,有没有办法绕过它
非常感谢。简单,但很难回答,而且花费了很多时间,但看起来不支持浮动。谢谢。简单,但很难回答,而且花费了很多时间,但看起来不支持浮动。谢谢。接受的答案对于iOS 2.x可能是正确的,但是对于任何最近的(64位)iOS设备,32位浮点实际上是音频单元样本的本机格式。接受的答案对于iOS 2.x可能是正确的,但是对于任何最近的(64位)iOS设备,32位浮点实际上是音频单元采样的本机格式。您可以声明导致错误的更改常量,但由于您没有实际指定要执行的操作,因此几乎不可能给出超出猜测范围的答案。您调用的函数实际上会导致错误。谢谢,我已经更新了postYou状态,您更改了导致错误的常量,但是由于您没有实际指定您正在执行的操作,因此几乎不可能给出答案,这不仅仅是猜测。你调用的是什么函数导致了错误。谢谢,我已经更新了帖子