Я использовал пример кода SpeakHere от Apple. Вот мой mRecordFormat:
mRecordFormat.mFormatFlags = kLinearPCMFormatFlagIsSignedInteger | kLinearPCMFormatFlagIsPacked;
mRecordFormat.mChannelsPerFrame = 1;
mRecordFormat.mBitsPerChannel = 16;
mRecordFormat.mBytesPerPacket = mRecordFormat.mBytesPerFrame = (mRecordFormat.mBitsPerChannel / 8) * mRecordFormat.mChannelsPerFrame;
mRecordFormat.mFramesPerPacket = 1;
mRecordFormat.mSampleRate = 11025.0;
Я записываю 7 секунд, и я предполагаю, что я получу 7 * 2 * 11025 байт (или 7 * 11025 коротких) общей информации. На самом деле я получаю немного больше: 154784 вместо 154350 байт (на 434 байта больше). Это число варьируется. И почему он меняется?
Может кто-нибудь объяснить, почему я получаю больше байтов, чем ожидал? Я ошибаюсь или что-то упускаю?
Кстати: я записываю в формате .wav, если это поможет.