マイクからオーディオ トラックを手動で作成し、その波形を確認しようとしています。
私はこのようにバッファを読みます:
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];
}
したがって、この時点で私が望むのは、bufferSet
2 秒の長さのオーディオです。問題は、それをプロットすると、波形が結合された 3 つのバッファーのそれぞれが突然変化する部分ではっきりとわかることです。
バッファを埋める必要がある特定の順序はありますか? 0から時間的に進みますか(最も早い瞬間から最後のユニットまで(時間的に最も遅い)、またはその逆ですか?)
オーディオ波形は次のようになります (2 秒)。途中で波形が急にずれて、前の秒のデータに連結されていないことがはっきりとわかります。
バッファを正しく読み取るにはどうすればよいので、以前のバッファと連結すると、取り込まれた時間の順に連続した波形になりますか?