Obiekt audio HTML5 nie jest odtwarzany na iPadzie (po wywołaniu z setTimeout)

Mam stronę z ukrytym<audio> obiekt, który jest uruchamiany i zatrzymywany za pomocą przycisku niestandardowego za pośrednictwem javascript. (Powodem jest to, że chcę dostosować przycisk, a rysowanie odtwarzacza audio i tak niszczy wydajność renderowania na iPadzie). Uproszczony przykład (w 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

Dźwięk gra dobrze, gdy jest wyzwalany z funkcji powiązanej z aclick ale chcę, żeby animacja się zakończyła, zanim plik się odtworzy, więc umieściłem.play() wewnątrz asetTimeout. Jednak nie mogę tego zrobić:

// 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

Sprawdziłem to@_audio (this._audio) jest w zakresie, a jegoplay() istnieje metoda. Dlaczego to nie działa na iPadzie?

Edytować: Jak to się dzieje, powyższy uproszczony przypadek testowyrobi praca. Zobacz odpowiedź @apsillers poniżej i moje komentarze na jej temat.

questionAnswers(3)

yourAnswerToTheQuestion