1

有没有人有一个如何在不使用 preloaderJS 的情况下使用 SoundJS 的示例。

我很遗憾地看到在Git hub上他们只有使用我不需要的预加载器的示例。

我正在尝试以下操作,但声音实例未播放:

var instance = createjs.SoundJS.play("/sounds/mysound.mp3"); //instance.playState 的值导致“playFailed”

任何人都知道如何获得更具体的错误信息?

4

2 回答 2

3

我知道这是一个非常古老的帖子,但是:

如果你没有使用 PreloaderJS,你需要先通过 registerSound() 注册声音:

    createjs.Sound.registerSound("/sounds/mysound.mp3", "mysoundID");

然后,当你想触发它时:

    createjs.Sound.play("mysoundID");

此外,您可能希望创建文件的 ogg 版本(“|”作为分隔符)并在同一 ID 下注册两者:

    createjs.Sound.registerSound("/sounds/mysound.mp3|/sounds/mysound.ogg", "mysoundID");

*SoundJS 将根据当前浏览器确定调用哪一个。

欲了解更多信息: http ://www.createjs.com/Docs/SoundJS/classes/Sound.html

于 2013-05-22T00:08:00.843 回答
0

是的,从死里复活,因为这个问题本身仍然是正确的(哈!双关语)。

从 SoundJS 0.6.1 开始(来自http://createjs.com/docs/soundjs/classes/Sound.html的文档):

"注册和预加载 在播放声音之前,必须先注册它。您可以使用 registerSound 执行此操作,或使用 registerSounds 注册多个声音。如果您在尝试使用 play 播放之前未注册声音,或者使用创建它createInstance,音源会自动注册,但是播放会失败,因为源还没有准备好。如果你使用PreloadJS,在预加载声音时会为你处理注册。建议在内部使用注册函数或预加载声音在外部使用 PreloadJS,以便在您想要使用它们时准备好它们。”

在内存有限的移动设备(例如 512MB iPad Mini)上开发声音丰富的应用程序时,这是相当成问题的。

这就是其他声音库(如 Howler)成为不错选择的地方。

于 2015-11-03T11:41:22.673 回答