Текущие решения для предварительной загрузки, кэширования или иного воспроизведения аудио без задержки / задержки на мобильном Safari в HTML5 Возможно iOS 5+ - PullRequest
15 голосов
/ 19 октября 2011

Существует множество сообщений SO на аудио, HTML5 и мобильных Safari, например:

Повторное использование аудиообъекта HTML5 в Mobile Safari Автозапуск аудио файла на мобильном Safari Предварительная загрузка HTML5 Audio в Mobile Safari Будет ли HTML5 поддерживать доступ к автономному кэшированному аудио?

Однако все они устарели.

Мы предпочитаем решения для поддержки iOS 3+, но мы возьмем все, что работает, даже если оно ограничено iOS 5.

У кого-нибудь есть окончательный ответ, как обстоят дела сегодня, или у тестировщиков на iOS 5 есть какие-то идеи?

  • Можно ли кэшировать аудиофайлы в мобильном Safari? Если да, то каковы ограничения?
  • Есть ли способ минимизировать задержку или задержку между нажатием кнопки и воспроизведением звука?

Спасибо!

1 Ответ

5 голосов
/ 16 января 2012

Я недавно написал аудиоплеер HTML5. У меня были похожие проблемы с iOS4 и iOS5. Во-первых, воспроизведение должно инициироваться пользовательским вводом, в частности, это означает, что оно должно быть в том же стеке вызовов, что и событие щелчка.

Я много тестировал, и iOS, похоже, вообще отказалась кэшировать аудио. Он получал аудио с каждой игрой. Я думаю, что это следует считать ошибкой, но, возможно, они пытаются сохранить локальное пространство хранения (аудиофайлы могут быть довольно большими). ​​

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

...