soundJS 中持久且可控的声音

persistent and controllable sounds in soundJS

我正在考虑将 SoundJS 用于在线声音界面,我对不同的示例感到有点困惑。

Sound Grid 示例的简单性很吸引人。按下按钮,发出声音。但我希望能够控制单个声音的音量和平移。在测试套件中,这似乎是可能的,但在此示例中,您必须先创建一个声音实例,然后才能控制它 volume/pan.

这让我很困惑。我希望对声音的引用与界面一起加载并存储,直到页面关闭。我没有将其用于游戏,因此销毁未使用或很少使用的资源并不重要。基本上,如果您看到将用于激活声音的界面元素,我希望它准备就绪并且可以控制。我设想每页大约有 15 种声音。一些较长的循环元素,大部分是一个镜头。

来自文档:

Once a AbstractSoundInstance is created, a reference can be stored that can be used to control the audio directly through the AbstractSoundInstance. If the reference is not stored, the AbstractSoundInstance will play out its audio (and any loops), and is then de-referenced from the Sound class so that it can be cleaned up

这总是一个两步过程吗?我想我正在寻找的是一个带有简单的 per-pad volume/pan/loop 控件的 soundGrid 版本。

您正在寻找的是 Sound.play. Specifically, you want to set the parameters on the play call. You could also use Sound.createInstance and SoundInstance.play 以达到相同的结果。

var SoundInstance = createjs.Sound.play("myAudioID", {loop: 2, volume: 0.75, pan: 0.5});

在回答您的评论时,您可以通过以下方式在对象哈希中存储可重复使用的声音实例。 var mySounds = {}; mySounds["id1"] = createjs.Sound.createInstance("id1); ... var currentSI = mySounds["id1]; currentSI.volume = 0.5;

希望有所帮助。