gpt4 book ai didi

javascript - 网络音频 API : Stop all scheduled sounds from playing

转载 作者:行者123 更新时间:2023-11-29 23:47:57 26 4
gpt4 key购买 nike

所以我有一堆加载的音频样本,我在下面的代码中调用调度函数:

let audio;

function playChannel() {
let audioStart = context.currentTime;
let next = 0;

for(let i = 0; i < 8; i++) {
scheduler(audioStart, next);
next++;
}
}

这是音频调度程序函数:

function scheduler(audioStart, index) {
audio = context.createBufferSource();
audio.buffer = audioSamples[index]; //array with all the loaded audio
audio.connect(context.destination);
audio.start(audioStart + (audio.buffer.duration * index));
}

它工作正常,可以正常播放预定的声音。

我应该如何停止/取消播放所有预定的声音?

因为现在当我尝试调用 stop() 方法时,它只会停止播放最后安排的声音。

最佳答案

您需要跟踪您在调度程序中创建的 BufferSource 节点,通过索引引用,然后运行所有这些节点。例如:

var sources = [];

function scheduler(audioStart, index) {
audio = context.createBufferSource();
sources[index] = audio;
audio.buffer = audioSamples[index]; //array with all the loaded audio
audio.connect(context.destination);
audio.start(audioStart + (audio.buffer.duration * index));
}

function stopAll() {
for(let i = 0; i < 8; i++)
if (sources[i])
sources[i].stop(0);
}

关于javascript - 网络音频 API : Stop all scheduled sounds from playing,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43454215/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com