AudioContext .ended没有正确触发

时间:2017-09-23 21:45:16

标签: javascript audiocontext

我有一个简单的例程,它创建一个audiocontext节点并用缓冲区加载它。引发的事件似乎从一开始就开始了。我为持续时间设置了一个计时器,并且在音频停止播放之前触发了大约一段时间。任何人都知道如何获得真正的举报活动。我试图使用目的地以及来源,结果相同

function playSoundFile(buffer) {
   'use strict';
   audioCtx.close();
   audioCtx = new (window.AudioContext || window.webkitAudioContext)();
   audioSource = audioCtx.createBufferSource();
   audioSource.connect(audioCtx.destination);
   audioSource.buffer = buffer;
   audioSource.playbackRate.value = 1;
   stillPlaying(true);
   audio_player = audioCtx.destination;
   audioSource.addEventListener('onended', whatsUp());
   console.log('start ' + showTime());
   filePlayed(buffer.duration);
   audioSource.start();
}

播放和播放事件之间的时间戳只有1毫秒不同。 filePlayed启动超时事件以显示开始和结束时间。

1 个答案:

答案 0 :(得分:3)

好的,客人271314大部分都是正确的。

文档令人困惑。 eventListener“已结束”而不是“onended”,你必须使用函数名称和parans

所以

audioSource.addEventListener('ended', whatsup);

处理问题。感谢。