Воспроизведение звука с малой задержкой для кода JS в Android Chrome

Я запускаю JS-скрипт в Android 5.1 Chrome (последнее обновление для моего MOTO G), который имеет значительную задержку (вероятно, более 200 мс). Аудиоплеер просто:

// some output to the screen //
var audioCtx = new (window.AudioContext || window.webkitAudioContext)();
function play(frequency, duration) 
{
var oscillator = audioCtx.createOscillator();
oscillator.type = 'square';
oscillator.frequency.value = frequency; // value in hertz
oscillator.connect(audioCtx.destination);
oscillator.start();
setTimeout(function(){oscillator.stop();}, duration);   
}

Можно ли улучшить эту задержку для одного и того же смартфона и той же версии Android? Я могу принять около 100 мс, и 50 мс достаточно. Также задержка только при первом вызове функции в порядке.

Кстати, будет ли такой код хорошо работать на обновленном Android-смартфоне или на iphone?


person OMGsh    schedule 06.07.2018    source источник


Ответы (1)


Чтобы уменьшить задержку, вы захотите использовать собственное решение. Я рекомендую Superpowered для всей обработки звука. В противном случае вы будете иметь дело с этим на каждом шагу. В среднем задержка для устройств Android составляет около 10 мс, и я могу представить, что вам тоже приходится бороться с ответом сервера. Что в высокопроизводительных аудиоприложениях вас уничтожит.

Судя по моему опыту с той же самой проблемой, мы успешно решили ее, учитывая задержку MS для каждого телефона, а затем позволяя пользователям контролировать разницу в слышимой задержке (что сложно для большинства).

person Jeremy    schedule 09.07.2018
comment
Можете ли вы оценить, насколько можно уменьшить задержку при переходе с JS в Chrome на нативное приложение? Например, если он находится в районе 20 мс, то это бессмысленно на моем устройстве с задержкой ~ 150 мс... - person OMGsh; 10.07.2018
comment
Я рекомендую проверить Superpowered и их приложение для определения задержки туда и обратно. Это поможет вам получить контрольные показатели, а также у них есть большой ресурс собранных данных по тысячам телефонов. Надеюсь, это поможет человеку, который раньше был в этой кроличьей норе! superpowered.com/latency - person Jeremy; 10.07.2018