2

循環バッファーを使用して、MixerHost のサンプル コードをよりメモリ効率の良いものに変更しようとしています。しかし、オーディオ ファイル全体の読み取りから 4K バイトのチャンクのみの読み取りにコードを変更すると、問題が発生するようです。オーディオ ファイルは実際に圧縮されているため、clientFormat は LPCM であり、サンプル コードと同様に暗黙的な変換が行われます。しかし、小さなチャンクを読み取ると、bufferList (AudioBufferList *) に収集されるデータが異なるようです。ExtAudioFileRead() 呼び出しの number_of_frames パラメータに依存します。

ExtAudioFileRead (
                  audioFileObject,
                  &numberOfFramesToRead, // <- this set to chunk size in bytes
                  bufferList   // <- contains 2 buffers, 1 chan each for L, R
                 );

Q: 読み取るフレームの数は、OUTPUT フォーマットの数を意味するはずですか? では、1024 フレームを指定すると、1024 の L,R サンプルが単純な LPCM 形式に読み込まれますか? Q: 読み取りあたりのフレーム数が異なると、異なる結果が得られるのはなぜですか?

SDK: iOS 5.1

4

0 に答える 0