目前我的音频无法在Safari和移动设备上播放。 它可以在FireFox,Chrome和IE上的普通电脑上正常工作
var manifest = [
{ id: "correct", src: 'assets/correct.mp3|assets/correct.ogg' },
{ id: "wrong", src: 'assets/wrong.mp3|assets/wrong.ogg' }
];
var queue = new createjs.LoadQueue();
queue.installPlugin(createjs.Sound);
queue.loadManifest(manifest, true);
我正在调用这样的游戏功能;
createjs.Sound.play("correct");
此函数写在用户按下div时调用的函数内。
答案 0 :(得分:4)
该代码看起来应该有效。 Web Audio最初在iOS设备上静音,但是当在用户事件内部调用播放时,它会取消静音。
有几种可能性(没有看到其余的代码):
您正在使用iPad 1,它不支持网络音频,并且由于严重限制而默认禁用html音频。
在调用play之前,您没有等待音频完成加载:
queue.addEventListener(“complete”,loadComplete);
音频文件路径不正确,因此负载失败,您可以通过侦听错误事件来检测。
您正在使用Safari不支持的mp3文件的非默认编码。通常情况下,在其他浏览器中也会出现这种情况。
Safari需要快速播放html音频,因此可能会出现问题。
使用createjs.Sound.registerPlugins,SoundJS被设置为使用不受支持的移动插件,例如FlashPlugin。您可以使用以下方法检查当前插件:
createjs.Sound.activePlugin.toString();
您可能会发现Mobile Safe Tutorial很有用。希望有所帮助。
答案 1 :(得分:0)
有一种方法可以破解它,播放空白的mp3然后播放音频。
首先必须在mainfest数组中加载空mp3:
var manifest = [
...
{ id: "empty", src: 'assets/empty.mp3|assets/empty.ogg' }
];
...
在播放声音之前,播放空白的mp3:
createjs.Sound.play("empty");
createjs.Sound.play("correct");