我试图用tone.js在Angular 9中实现一个简单的节拍器,但似乎在执行过程中发生了某种类型的心律失常……我不知道我是否在实现中遗漏了什么。
下面是我的代码:
playMetronome(): void {
Tone.Transport.bpm.value = 120;
Tone.Transport.scheduleRepeat(() => {
const player = new Tone.Player("./../../assets/sounds/tick.mp3").toMaster();
player.autostart = true;
}, "4n");
Tone.Transport.start();
}有人能帮我吗?
发布于 2020-06-08 06:38:18
请使用Tones传输机制的time参数,否则计时会不稳定。例如:
// instantiate the player
const play1 = new Tone.Player(<url>).toDestination();
// schedule the events
Tone.Transport.schedule(time => play1.start(time), 0);
Tone.Transport.schedule(time => play1.start(time), '0:2');
// set tempo
Tone.Transport.bpm.value = 220;
// set loop & repeat
Tone.Transport.loopEnd = '1m';
Tone.Transport.loop = true;
// start transport
Tone.Transport.start();在这里找到一个stackblitz示例:https://stackblitz.com/edit/angular-metronome-mki
https://stackoverflow.com/questions/62046737
复制相似问题