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

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

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

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

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

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

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

Спасибо!

Ответы

Ответ 1

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

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

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