AudioContext: Oscillator - 知道所有声音何时播放
AudioContext: Oscillator - know when all sounds have been played
我正在使用 this javascript api (miniMusic)。我能够创建音乐,然后导出 javascript 代码。我也可以运行了。
我希望能够知道我的音乐何时结束,以便我可以再次播放并控制它。
with(new AudioContext)
for(i in D=[12,,,13,,,18,,,,,,12,,,13,,,18,,,,,,12,,,13,,,18,,,15,,,12,,,8,,,12,,,13]) {
with(createOscillator())
if(D[i]) {
connect(destination)
frequency.value=800*1.06**(13-D[i]),
type='square',
start(i*.1),
stop(i*.1+.1)
}
}
// -> onEnd = function (...) {}
循环 运行 立即结束,因此我无法使用索引来定位音乐播放的音符。
有人可以帮助我吗?
振荡器有一个 onend 函数,当音调结束时会调用该函数,但是您链接的 api 会为每个音符创建一个新的振荡器,您可以计算播放的音符数然后循环一旦音符数等于曲调中的音符数。
例子
with(new AudioContext)
for (i in D = [12, , , 13, , , 18, , , , , , 12, , , 13, , , 18, , , , , , 12, , , 13, , , 18, , , 15, , , 12, , , 8, , , 12, , , 13]) {
with(createOscillator())
if (D[i]) {
onended = function() {
console.log('Note has stopped playing');
}
connect(destination)
frequency.value = 800 * 1.06 ** (13 - D[i]),
type = 'square',
start(i * .1),
stop(i * .1 + .1)
}
}
希望对您有所帮助!
我正在使用 this javascript api (miniMusic)。我能够创建音乐,然后导出 javascript 代码。我也可以运行了。
我希望能够知道我的音乐何时结束,以便我可以再次播放并控制它。
with(new AudioContext)
for(i in D=[12,,,13,,,18,,,,,,12,,,13,,,18,,,,,,12,,,13,,,18,,,15,,,12,,,8,,,12,,,13]) {
with(createOscillator())
if(D[i]) {
connect(destination)
frequency.value=800*1.06**(13-D[i]),
type='square',
start(i*.1),
stop(i*.1+.1)
}
}
// -> onEnd = function (...) {}
循环 运行 立即结束,因此我无法使用索引来定位音乐播放的音符。 有人可以帮助我吗?
振荡器有一个 onend 函数,当音调结束时会调用该函数,但是您链接的 api 会为每个音符创建一个新的振荡器,您可以计算播放的音符数然后循环一旦音符数等于曲调中的音符数。
例子
with(new AudioContext)
for (i in D = [12, , , 13, , , 18, , , , , , 12, , , 13, , , 18, , , , , , 12, , , 13, , , 18, , , 15, , , 12, , , 8, , , 12, , , 13]) {
with(createOscillator())
if (D[i]) {
onended = function() {
console.log('Note has stopped playing');
}
connect(destination)
frequency.value = 800 * 1.06 ** (13 - D[i]),
type = 'square',
start(i * .1),
stop(i * .1 + .1)
}
}
希望对您有所帮助!