1

私はwavファイルからAudioBufferListを取得します(サンプルレートは44100HZで、長い時間は2秒です)。しかし、44100*2=88200 サンプルを取得できません。実際には、512 個の nNumberBuffers を含む AudiobufferList を取得しました。AudioBufferList からサンプルを取得するにはどうすればよいですか?

4

3 に答える 3

1

AudioBufferList はハードウェアに依存する一時バッファであるため、固定サイズに設定しないでください。サイズは予測できず、適切なサイズしか設定できません。さらに、2 つの読み取り呼び出し間で同じサイズになることは認められていません。88200 個のサンプル (または好みのもの) を取得するには、AudioBufferList のサンプルを使用して、新しいバッファーを段階的に埋める必要があります。 この目的のために作成されたこの循環バッファーhttps://github.com/michaeltyson/TPCircularBufferを使用することをお勧めします。この助けを願っています

于 2013-02-11T10:29:51.093 に答える
0

私が知っているように、AudioBufferList は、データを受信するように設定する必要があり、その後、何らかの読み取り関数 (ExtAudioFileRead() など) によって埋められる必要があります。そのため、必要なバッファ (通常は 1 または 2) を割り当てて準備し、nNumberBuffers をその数に設定して、オーディオ データを読み込みます。AudioBufferList はそのバッファを格納するだけで、フレーム値が含まれます。

于 2012-09-17T16:18:57.773 に答える