如何使用 javascript 实现流畅的音乐过渡

How to achieve a smooth music transition with javascript

我想在网页上从一首歌曲淡入另一首。这是一个说明问题的代码笔:

music transition test

我可以用这段代码实现音乐音量衰减:

$("#mysong").animate({volume: 0}, 1000);

但是歌曲在淡出完成之前就切换了。我怀疑这条线

mysong.play();

正在触发新歌播放,但如果我省略该行,则新歌不会开始播放。

我在更改源之前试过这个:

while (mysong.volume != 0)

但它有奇怪的行为。这是您第一次单击过渡按钮时,音乐停止,最终下一首歌曲淡入。再次单击过渡只会降低音量,不再更改源。

animate 方法有一个完整的接受函数的参数。动画完成后将调用此函数。检查 documentation.

$("#mysong").animate({volume: 0}, 1000, function() {
     //Your code here.
});