Почему это работает?
- (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);
Я уверен, что проблема заключается в флагах формата, поскольку ошибка возникает, только когда я пытаюсь использовать флаг с плавающей запятой, какие-либо идеи, как его обойти?
Большое спасибо.