Аудиообъект HTML5 не воспроизводится на iPad (при вызове из setTimeout)

У меня есть страница со скрытым<audio> Объект, который запускается и останавливается с помощью пользовательской кнопки с помощью JavaScript. (Причина в том, что я хочу настроить кнопку, а рисование аудиоплеера, похоже, в любом случае снижает производительность рендеринга на iPad). Упрощенный пример (в coffeescript):

// Works fine on all browsers

constructor: (@_button, @_audio) ->
  @_button.on 'click', @_play          // Bind button's click event with jQuery

_play: (e) =>
  @_audio[0].play()                    // Call play() on audio element

Звук воспроизводится нормально при запуске из функции, связанной сclick событие, но я на самом деле хочу завершить анимацию до воспроизведения файла, поэтому я поставил.play() внутриsetTimeout, Однако я просто не могу заставить это работать:

// Will not play on iPad

constructor: (@_button, @_audio) ->
  @_button.on 'click', @_play          // Bind button's click event with jQuery

_play: (e) =>
  setTimeout (=>                       // Declare a 300ms timeout
    @_audio[0].play()                  // Call play() on audio element
  ), 300

Я проверил это@_audio (this._audio) находится в области применения и что егоplay() метод существует. Почему это не работает на iPad?

Edit: Как оказалось, приведенный выше упрощенный тест на самом делеdoes Работа. Смотрите @ apsillers & apos; ответ ниже и мои комментарии к нему.

Ответы на вопрос(3)

Ваш ответ на вопрос