我需要分层循环.wav轨道,最终我将需要能够打开和关闭并保持同步。
首先,我加载了曲目,并停止BufferLoader了将加载的内容arraybuffer变成的AudioBuffer(因此false)
function loadTracks(data) {
for (var i = 0; i < data.length; i++) {
trackUrls.push(data[i]['url']);
};
bufferLoader = new BufferLoader(context, trackUrls, finishedLoading);
bufferLoader.load(false);
return loaderDefered.promise;
}
Run Code Online (Sandbox Code Playgroud)
当您单击屏幕上的按钮时,它将调用startStop()。
function startStop(index, name, isPlaying) {
if(!activeBuffer) {
activeBuffer = bufferList[index];
}else{
activeBuffer = appendBuffer(activeBuffer, bufferList[index]);
}
context.decodeAudioData(activeBuffer, function(buffer){
audioBuffer = buffer;
play();
})
function play() {
var scheduledTime = 0.015;
try {
audioSource.stop(scheduledTime);
} catch (e) {}
audioSource = context.createBufferSource();
audioSource.buffer = …Run Code Online (Sandbox Code Playgroud)