2013-12-05 2 views
2

В настоящее время мой звук не воспроизводится на сафари и на мобильных устройствах. Он отлично работает на обычном ПК на FireFox, Chrome и IESoundjs на сафари и мобильных браузерах

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.

ответ

4

Этот код выглядит так, как будто он должен работать. Сначала веб-аудио отключается на устройствах iOS, но когда воспроизведение вызывается внутри пользовательского события, оно отключается.

Есть несколько возможностей (не видя остальную часть кода):

  1. Вы работаете на Ipad 1, который не поддерживает веб-аудио и имеет HTML аудио по умолчанию отключен из-за тяжелой ограничения.

  2. Вы не ожидая звука, чтобы закончить загрузку перед вызовом игры:

    queue.addEventListener ("полный", loadComplete);

  3. Путь аудиофайла неверен, поэтому загрузка не срабатывает, что вы можете обнаружить, прослушивая событие ошибки.

  4. Вы используете кодировку не по умолчанию для mp3-файлов, которые не поддерживаются Safari. Как правило, это также ломается в других браузерах.

  5. Для Safari требуется быстрое время для воспроизведения звука в формате html, так что это может быть проблемой.

  6. Использование createjs.Sound.registerPlugins, SoundJS настроен на использование неподдерживаемого в мобильном плагине, такого как FlashPlugin. Вы можете проверить свой текущий плагин с помощью:

    createjs.Sound.activePlugin.toString();

Возможно, вы найдете Mobile Safe Tutorial. Надеюсь, это поможет.

0

Существует способ взломать его, сыграть пустой mp3 и воспроизвести аудио.

Он должен загрузить пустой mp3 в MainFest массиве во-первых:

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

...

Перед воспроизведением звука, играть пустую mp3:

createjs.Sound.play("empty"); 

createjs.Sound.play("correct"); 
Смежные вопросы