Android Chrome中的JS代码的低延迟音频播放

时间:2018-07-06 15:25:51

标签: javascript android audio low-latency

我在5.1 android chrome(我的MOTO G的最新更新)中运行JS脚本,该脚本具有明显的延迟(可能超过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上正常工作?

1 个答案:

答案 0 :(得分:1)

为了减少延迟,您将需要使用本机解决方案。我建议对所有音频处理使用Superpowered。否则,您将处理所有步骤。平均而言,Android设备的延迟约为10毫秒,我可以想象您也必须应对服务器响应。高性能音频应用中的哪一个会摧毁您。

根据我对这个完全相同的问题的经验,我们成功地解决了每个电话的MS延迟问题,然后还允许用户控制可听见的延迟差异(这对大多数人来说很难)。