AudioQueueでオーディオデータを読み込もうとしています。これを行うと、ファイルのビット深度が16ビットであることを確認できます。しかし、実際のサンプルデータを取得すると、値は-128から128までしか表示されません。しかし、疑わしいインタリーブされたデータも見ています。データが正しく読み込まれていないことがわかります。AudioQueueでオーディオバッファデータを読み取る
そうで始まるように、私は、ソースファイルが16ビット、モノラルwavファイル、44100であることを確認することができます。
私のバッファがthusly割り当てられている:私は実行し、データを取得見ることができるだけのように、テストとして
AudioFileReadPackets(inAudioFile,false,&bytesRead,NULL,packetNum,&numPackets,buffer);
:
char *buffer= NULL; buffer = malloc(BUFFER_SIZE); assert(buffer);
関連するすべての値が設定され、中で使用されています:
for(int i=0;i<BUFFER_SIZE;i++){ NSLog(@"%i", buffer[i]); }
ここで、ソースファイルのピークはどこにでもわかりますが、値は-128 nd 128です。これは16ビットファイルなので、値は-32768〜32768になると思います。
また、データには2つのパターンがあるようです。返さここではデータの例です:-13:
70 -13 31 -11 -118 -9 -15 -7 116 -4 31 -1 28 1 84 2 -123 3 -97 4 110 5 54 6 126
を今第二列で始まる行おきを見てみましょう。それがどのように増加するか、均等にではなく、少なくともスムーズに見えますか?奇数行は、その滑らかな部分の近くにはありません。
私が最初に考えたのは、これがインターリーブされたステレオデータですが、いや、それは一つのチャンネルのみですので、右、任意のインターリーブがあってはならないということでしょうか?
私の最高の推測では、サンプルデータが2つのリターンにまたがるされているので、私はちょうど、間違ったデータを読んでいるということです。どのように正しくそれを読むために任意のアイデア?
質問全体を読んでいただきありがとうございました。また、洞察力もありがとうございます。理由です
もう一度Peterに感謝します。 –