アプリケーションでAudio Queue Servicesを使用しています。バッファーを割り当てるときに、バッファー サイズを 30000 サンプルに設定します。
AudioQueueAllocateBuffer(mQueue, 30000, &mBuffers[i]);
ただし、コールバックの後続の呼び出しは、次のinNumberPacketDescriptionsで行われます。
30000
30000
30000
26928
30000
30000
それらは常に 30000 に等しいとは限りません。なぜですか?
レコード形式の構成 ( CAStreamBasicDescriptionを使用):
mRecordFormat.mSampleRate = kSampleRate;
mRecordFormat.mChannelsPerFrame = 1;
mRecordFormat.mFormatID = kAudioFormatLinearPCM;
mRecordFormat.mFormatFlags = kLinearPCMFormatFlagIsSignedInteger | kLinearPCMFormatFlagIsPacked;
mRecordFormat.mBitsPerChannel = 16;
mRecordFormat.mBytesPerPacket = mRecordFormat.mBytesPerFrame = (mRecordFormat.mBitsPerChannel / 8) * mRecordFormat.mChannelsPerFrame;
mRecordFormat.mFramesPerPacket = 1;
3 つのバッファが使用されます。