我只能在SO上找到一个类似的问题并且它没有答案,所以我希望有人可以对此有所了解!
我在我的英特尔XDK项目中使用了Web Audio API,但发现尽管它在桌面Chrome和iPad上没有任何延迟(可能是iPhone,虽然我无法对此进行测试),但是在Android上是非常明显的延迟 - 延迟我的意思是用户启动声音和播放之间的延迟大约300ms。它是一致的延迟,会影响通过Web Audio API生成的所有声音。
我想知道是否有某种参数来设置延迟?通常它是由处理器的速度设置的(即较慢的处理器=较大的缓冲区),但我不知道Web Audio API在该级别上是如何工作的。
任何帮助将不胜感激!
var context = new (window.AudioContext || window.webkitAudioContext)();
var bgs=[];var samps=[
'sound/ting.mp3',
'sound/ratchet1.mp3',
'sound/blip.mp3',
'sound/blipback.mp3',
'sound/TelTing1.mp3',
'sound/TelTing2.mp3',
'sound/TelTing3.mp3',
'sound/TelTing4.mp3',
'sound/TelDialReturn.mp3',
'sound/TelDialStop.mp3',
'sound/TelDialSlow2.mp3',
'sound/sea1.mp3'
];
var bufferLoader;
window.onload=function(){
bufferLoader = new BufferLoader(
context,samps,
finishedLoading
);
bufferLoader.load();
function finishedLoading(bufferList) {
debug("Audio Loaded")
soundloop=1;
for(i=0;i<samps.length;i++){bgs[i]=bufferList[i]}
play(0)
}
}
var sourceA = null;
var gainNodeA = context.createGain()
function play(x) {
sourceA = context.createBufferSource();
sourceA.buffer = bgs[x];
sourceA.connect(gainNodeA);
gainNodeA.connect(context.destination)
gainNodeA.gain.value=1;
sourceA.start(0);
}