Javascript 在源节点上调用stop()是否会触发结束事件?
根据web音频API规范 我可以指定一个事件处理程序,该处理程序在源节点完成播放时运行(源节点的Javascript 在源节点上调用stop()是否会触发结束事件?,javascript,web-audio-api,Javascript,Web Audio Api,根据web音频API规范 我可以指定一个事件处理程序,该处理程序在源节点完成播放时运行(源节点的onended属性)。但是,如果在音频源节点上调用stop(0),是否会触发该事件?规格似乎不太清楚 我可以在各种浏览器上试用,但我想知道这方面的标准行为。当源节点主动停止时,end事件是否触发?或者,结束事件是否仅在音频播放结束时触发?事件处理程序类型的onended 用于为分派到AudioBufferSourceNode节点类型的结束事件设置EventHandler(在HTML[HTML]中描述
onended
属性)。但是,如果在音频源节点上调用stop(0)
,是否会触发该事件?规格似乎不太清楚
我可以在各种浏览器上试用,但我想知道这方面的标准行为。当源节点主动停止时,
end
事件是否触发?或者,结束
事件是否仅在音频播放结束时触发?事件处理程序类型的onended
用于为分派到AudioBufferSourceNode节点类型的结束事件设置EventHandler(在HTML[HTML]中描述)的属性当AudioBufferSourceNode的缓冲区播放完成时,类型为event(在HTML[HTML]中描述)的事件将被发送到事件处理程序
它声明它在音频数据结束时或停止时触发
这些台词让我感到困惑:
void start (optional double when = 0, optional double offset = 0, optional double duration);
void stop (optional double when = 0);
attribute EventHandler onended;
是的<当音频播放完毕或调用了
stop()
时,将触发code>onended事件
来自
var audioCtx=new(window.AudioContext | | window.webkitadiocontext)();
var button=document.querySelector('button');
var stop=document.querySelector('#stop');
var源;
//立体声
var通道=2;
//在顶部创建一个空的两秒立体声缓冲区
//音频上下文的采样率
var frameCount=audioCtx.sampleRate*2.0;
var myArrayBuffer=audioCtx.createBuffer(2,frameCount,audioCtx.sampleRate);
button.onclick=函数(){
//用白噪声填充缓冲器;
//只是-1.0和1.0之间的随机值
用于(var通道=0;通道<通道;通道++){
//这将为我们提供包含数据的实际ArrayBuffer
var nowBuffering=myArrayBuffer.getChannelData(通道);
对于(变量i=0;i
AudioBuffer示例
制造白噪音
停止()