アイデアは、電話機 A が音声信号と Bluetooth 信号を同時に送信し、電話機 B が 2 つの信号間の遅延を計算するというものです。
実際には、90 ミリ秒から 160 ミリ秒の遅延で一貫性のない結果が得られます。可能な限り両端を最適化してみました。
出力側:
Bluetooth とオーディオ出力がそれぞれ独自のスレッドを持つと、トーンが生成されます
。Bluetooth は、AudioTrack.write と AudioTrack がストリーミング モードになった後にのみ出力されるため
、書き込みが完了する前に出力を開始する必要があります。
受信側:
ここでも 2 つの別個のスレッド
システム時間が各 AudioRecord.read の前に記録されます。
サンプリング仕様:
44.1khz
バッファ全体を読み取る fft を
使用して一度に 100 サンプルをサンプリング
最初の read() 以降に変換されたサンプル数を考慮に入れる