小编use*_*027的帖子

Android上的Web Audio API延迟

我只能在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);
}
Run Code Online (Sandbox Code Playgroud)

audio android web

6
推荐指数
0
解决办法
624
查看次数

标签 统计

android ×1

audio ×1

web ×1