首页 > 解决方案 > 如何使用 Tone.JS 激活淡出效果?

问题描述

我能够成功播放频率为 100hz 的方波类型的振荡音。

然而,语气并没有“优雅地”停止。此外,当音调停止时,您的扬声器会发出“砰”的声音,而当您的扬声器音量过高时,“砰”的声音会更糟。为了解决这个问题,我想添加一个淡出效果。ToneJS库支持这一点:这里. 但是,我无法设置淡出属性或激活它。

我究竟做错了什么?

$( "#btnPlay" ).click(function(e) {
  var player = new Tone.Oscillator(100, "square").toDestination();

  player.fadeOut = 5; // set fadeOut time value

  player.start();
  player.stop(1); // stop playing after 1 second
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/tone/14.8.5/Tone.js"></script>

<input id = "btnPlay" type="submit" value="Play!"/>

标签: javascriptjquerytonejs

解决方案


你的fadeOut值太长了,所以你听不到。该值以秒为单位,因此请尝试提供0.05(ie 50ms)。

player.fadeOut = 0.05; // value is in seconds

推荐阅读