webaudio ajax,google chrome - Firefox Web Audio: source.start() broken by unrelated synchronous ajax...

The below method works as written in Chrome, but not at all in Firefox 30 & 31, even when I replace src.start(startTime) with src.start(0). However, if I set a breakpoint and manually call src.start(0), the sound plays. What am I missing? No errors are thrown.

this.play = function (soundName, waitTime, callbackEnd, callbackStart) {

//plays sound now or at specific time

var ctxt = manager.context;

if (typeof waitTime === 'undefined') waitTime = 0;

var src = ctxt.createBufferSource();

src.buffer = manager.buffers[soundName];

src.onended = callbackEnd;

src.connect(ctxt.destination);

var startTime = ctxt.currentTime + waitTime;

src.start(startTime);

if (typeof callbackStart !== 'undefined') {

window.setTimeout(callbackStart, waitTime*1000);

}

//return when the sound will start (seconds)

return startTime;

};

Update

The issue appears to be that earlier in page execution, Backbone.model.fetch() is used in synchronous mode. After Firefox warns about synchronous ajax deprecation, it refuses to play audio.

Update 2

Test-Case

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值