1

マイクからオーディオ トラックを手動で作成し、その波形を確認しようとしています。

私はこのようにバッファを読みます:

 double[] bufferSet = new double[blockSize*2]

 //in a while loop
 int bufferReadResult = audioRecord.read(buffer, 0, blockSize);

次に、読み取り結果から独自のバッファーを構築します。

したがって、bufferSetこのように少し見えます

//First second
j=1;

for(i=0; i<blockSize; i++) {
    bufferSet[j*blockSize+i] = buffer[i];
}

//Second Second
j=2;

for(i=0; i<blockSize; i++) {
    bufferSet[j*blockSize+i] = buffer[i];
}

したがって、この時点で私が望むのは、bufferSet2 秒の長さのオーディオです。問題は、それをプロットすると、波形が結合された 3 つのバッファーのそれぞれが突然変化する部分ではっきりとわかることです。

バッファを埋める必要がある特定の順序はありますか? 0から時間的に進みますか(最も早い瞬間から最後のユニットまで(時間的に最も遅い)、またはその逆ですか?)

オーディオ波形は次のようになります (2 秒)。途中で波形が急にずれて、前の秒のデータに連結されていないことがはっきりとわかります。

ここに画像の説明を入力

バッファを正しく読み取るにはどうすればよいので、以前のバッファと連結すると、取り込まれた時間の順に連続した波形になりますか?

4

1 に答える 1

0
double[] bufferSet = new double[blockSize*2]
//First second
j=1;
...
bufferSet[j*blockSize+i] = buffer[i];
...
//Second Second
j=2;

j=01秒目も2秒目も欲しくないj=1

于 2013-08-02T08:39:32.173 に答える