You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Tone.js按特定间隔播放音频文件时循环异常的问题求助

Tone.js按特定间隔播放音频文件时循环异常的问题求助

我现在在用Tone.js的Player组件,想让一个音频文件按特定间隔重复播放——也就是在开始时、第一小节、第四小节这几个时间点触发播放。但实际运行时遇到了问题:前几次播放的间隔是对的,但进入循环后,每一小节的开头都会播放这个音频,完全偏离了我设定的时间点。

我的HTML里只有一个用来触发播放的按钮:

<button id="playIt">Play</button>

对应的JavaScript/jQuery代码如下:

$(document).ready(function () {
    $("#playIt").click(function () {
        if (Tone.context.state != "running") {
            Tone.start();
        }

        playNotes();
    });
});

const player = new Tone.Player({
    url: "/tick.mp3",
    loop: true,
    autostart: false
}).toDestination();

Tone.Transport.bpm.value = 140;

// Schedule the player to start at specific times
Tone.Transport.schedule(time => {
    player.start(time);
}, "0:0:0"); // Play at the start

Tone.Transport.schedule(time => {
    player.start(time);
}, "0:1:0"); // Play at 1st measure

Tone.Transport.schedule(time => {
    player.start(time);
}, "0:4:0"); // Play at 4th measure

async function playNotes() {
    Tone.Transport.start();
}

目前的现象是:如果关闭Player的loop属性,它会按照设定的时间点正确播放一次;但开启loop后,第一次循环播放是正常的,之后就会在每一小节都播放这个音频,完全不符合预期。

麻烦各位帮我排查一下问题所在,非常感谢!

备注:内容来源于stack exchange,提问作者Steve A

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.14 09:09:51