Поддельный "пользователь инициировал" тег <audio>на iPad - PullRequest
3 голосов
/ 24 мая 2010

Я знаю, что в документах Apple говорится, что mp3 в теге <audio> на iPhone OS не может быть воспроизведено без вмешательства пользователя (они указывают на пропускную способность, вполне разумно).Однако кому-нибудь удалось подделать действие пользователя для воспроизведения звука?Возможно, имитировать события, чтобы скрыть нативные элементы управления звуком с помощью JavaScript?Я сейчас использую jPlayer, который отлично работает на настольном Safari, но на моем iPad не работает.

Я создаю прототип сенсорного интерфейса с помощью WebKit на iPad, и звук является неотъемлемой частью опытатак что да , у меня есть веская причина хотеть отменить это соглашение.

Буду признателен за любую помощь.Спасибо.

1 Ответ

5 голосов
/ 07 июля 2010

У меня была такая же проблема ... желание контролировать воспроизведение звука с самого начала.

Мое решение состояло в том, чтобы поместить аудио-теги в скрытый DIV-файл, какthis.

<div id="junk" style="display: none">
  <audio id="effect1" src="..." autobuffer="autobuffer" controls="" ></audio>
  <audio id="effect2" src="..." autobuffer="autobuffer" controls="" ></audio>
  <audio id="effect3" src="..." autobuffer="autobuffer" controls="" ></audio>
</div>

Тогда в моем javascript есть код, подобный этому, в процедуре воспроизведения.

function playEffect(x) {
  var a = document.getElementById('effect' + x);
  if (a && a instanceof Audio) {
    if (a.currentTime) { a.currentTime = 0; }
    a.play();
  }
}

Итак ... вы следуете правилам, потому что "требуемый" элемент управления UIтам, но, конечно, это не мешает веб-странице.Проверка currentTime в функции playEffect «перематывает» звук ... если вы этого не сделаете, он не будет воспроизводиться второй раз.

Это сработало для меня на iPad и iPhone, а такжеSafari на моем Mac.Я не проверял IE на соответствие.Моя страница была интегрирована с Google Maps API v3.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...