在基于Flash的Canvas项目中播放声音时遇到很多问题。我在这里使用基本示例(http://createjs.com/Docs/SoundJS/classes/Sound.html)来完成工作,我得到的是一个黑屏并出现以下错误:
参数列表之后SyntaxError:missing)
我的JS文件中包含以下内容:
createjs.Sound.on("fileload", createjs.proxy(this.loadHandler, (this));
所以我添加额外的)但现在又出现了另一个错误:
TypeError:createjs.Sound未定义
这是:
createjs.Sound.registerPlugins([createjs.WebAudioPlugin, createjs.FlashAudioPlugin]);
这里发生了什么?为什么我不能让这个玩呢?
这是完整的代码:
createjs.Sound.registerPlugins([createjs.WebAudioPlugin, createjs.FlashAudioPlugin]);
createjs.Sound.alternateExtensions = ["mp3"];
createjs.Sound.on("fileload", createjs.proxy(this.loadHandler, (this)));
createjs.Sound.registerSound("sounds/LaGrange.mp3", "sound");
function loadHandler(event) {
// This is fired for each sound that is registered.
var instance = createjs.Sound.play("sound"); // play using id. Could also use full source path or event.src.
instance.on("complete", createjs.proxy(this.handleComplete, this));
instance.volume = 0.5;
}
答案 0 :(得分:2)
那令人尴尬。该示例确实有2个错误。第一个是缺失的")",你抓住并纠正了。第二个是FlashAudioPlugin没有完全设置。在注册插件之前,您需要添加此行来设置FlashAudioPlugin.swf的路径:
createjs.FlashAudioPlugin.swfPath = "../src/soundjs/flashaudio";
感谢您抓住这一点。我已经将其固定版本推送到github。此外,如果您想要更多工作示例进行测试,则所有demos都经过了充分测试。
希望有所帮助。
答案 1 :(得分:0)
如果您在本地进行测试(即,不在Web服务器上 - 远程或本地),则WebAudio无法播放,因为它使用XHR加载它,这不能跨域工作(使用file:///是也被认为是不安全的)
将其更改为仅在测试时使用HTMLAudio,它应该可以正常工作。