繁体   English   中英

Safari和移动浏览器上的Soundjs

[英]Soundjs on safari and mobile browsers

目前,我的音频无法在野生动物园和移动设备上播放。 在FireFox,Chrome和IE的普通PC上运行正常

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);

我这样称呼play函数;

createjs.Sound.play("correct");

该函数编写在用户按下div时调用的函数内部。

该代码看起来应该可以工作。 Web音频最初在iOS设备上被静音,但是在用户事件中调用播放时,音频将取消静音。

有两种可能(看不到其余代码):

  1. 您正在使用iPad 1,该iPad不支持Web音频,并且由于严重的限制默认情况下禁用html音频。

  2. 您无需等待音频完成加载再调用play:

    queue.addEventListener(“ complete”,loadComplete);

  3. 音频文件路径不正确,因此加载失败,可以通过侦听错误事件进行检测。

  4. 您正在使用Safari不支持的mp3文件的非默认编码。 通常,这也会在其他浏览器中中断。

  5. Safari需要快速时间才能播放html音频,因此可能是个问题。

  6. 使用createjs.Sound.registerPlugins,将SoundJS设置为使用不支持的移动插件(例如FlashPlugin)。 您可以使用以下方法检查当前的插件:

    createjs.Sound.activePlugin.toString();

您可能会发现“ 移动安全教程”很有用。 希望能有所帮助。

有一种方法可以破解它,播放一个空的mp3,然后播放音频。

它必须首先在mainfest数组中加载空的mp3:

var manifest = [
    ...
    { id: "empty", src: 'assets/empty.mp3|assets/empty.ogg' }
];

...

在播放声音之前,播放空的mp3:

createjs.Sound.play("empty");

createjs.Sound.play("correct");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM