audio - SoundJS-将声音分配给变量

标签 audio jquery-animate createjs soundjs

我正在使用loadManifest加载多个mp3文件,但是对于如何将加载的声音分配给变量感到有些困惑。我可以在这里使用createInstance吗?

我的代码当前如下所示:

var myRoot = this;

var queue = new createjs.LoadQueue();
queue.addEventListener("fileload", handleFileLoad);
queue.addEventListener("complete", handleComplete);

queue.loadManifest([{ src: "media/file1.mp3", id: "sound1" },
                    { src: "media/file2.mp3", id: "sound2" },
                    { src: "media/file3.mp3", id: "sound3" }]);

function handleFileLoad(event) {    
    // assign each sound to unique variable
    myRoot.sound1 = createjs.Sound.createInstance("sound1");
    myRoot.sound2 = createjs.Sound.createInstance("sound2");
    myRoot.sound3 = createjs.Sound.createInstance("sound3");
}

function handleComplete(event) {
    // start playing sound1
    myRoot.sound1.play();
}

如何使用声音的ID创建声音实例并将其分配给以后可以轻松访问的变量?我需要先注册声音吗?

谢谢!

最佳答案

createjs.Sound.play(id)方法返回声音对象的实例。

因此,您可以执行以下操作:

myRoot.sound1 = createjs.Sound.play(id, [createjs.Sound.INTERRUPT_ANY], [delay], [offset], [loops], [volume]);

之后,您可以使用引用来自由地操纵声音。例如:
myRoot.sound1.volume = 0.5;
myRoot.sound1.addEventListener("complete", handleSoundComplete);
myRoot.sound1.play();
myRoot.sound1.stop();

通过使用此方法,您还可以使用其他几种方法,例如将声音实例保存在数组中以重复使用它们,或者可以始终通过它们的ID来播放它们,而不是使用自定义播放方法。

另外,如果您使用 list list 加载器加载声音,则无需单独注册每个声音,因为它们会自动注册。

关于audio - SoundJS-将声音分配给变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40636088/

相关文章:

javascript - for循环中的渐变填充空

audio - 音频演示中出现意外的嗡嗡声

android - 如何为媒体播放器使用 Intent ?

javascript - jQuery animation() - 完成触发太快

javascript - 对已经进行动画处理的元素进行动画处理

css - WebKit 中不稳定的 CSS3 宽度转换

ios - AVAudioPlayer播放一个数据(一次)然后重复播放另一个数据(多次)

windows-phone-7 - 获得主音频音量

javascript - CreateJS 在 bask 后面屏蔽图像

easeljs - 如何在createjs中使用圆弧绘制圆?