Идея заключается в том, что телефон А отправляет звуковой сигнал и сигнал Bluetooth одновременно, а телефон Б вычисляет задержку между двумя сигналами.
На практике я получаю противоречивые результаты с задержками от 90 до 160 мс. Я попытался максимально оптимизировать оба конца.
На стороне вывода:
Тон генерируется, когда Bluetooth и аудиовыход имеют свой собственный поток
Bluetooth выводит только после того, как AudioTrack.write и AudioTrack находится в потоковом режиме, поэтому он
должен начать вывод до того, как запись даже завершена.
На принимающей стороне:
Снова два отдельных потока
Системное время записывается перед каждым AudioRecord.read
Спецификации выборки:
44,1 кГц
Чтение всего буфера
Выборка 100 выборок за раз с использованием fft
Принимая во внимание, сколько выборок было преобразовано с момента первоначального чтения()