Мобильный Safari: Аудио + кэш манифест

У меня есть небольшое веб-приложение, которое воспроизводит действительно короткие звуковые фрагменты по нажатию нескольких кнопок. Оно явно нацелено на мобильный Safari на iOS (iPad).

Прочитав здесь и в других местах о нескольких "недостатках" HTML5-аудио в этом контексте в мобильном Safari и попробовав несколько "хаков" и трюков, я столкнулся с ситуацией, когда Safari кажется просто (за неимением лучшего слова) сломанным:

Я могу воспроизвести звук A (для его запуска требуется много времени - я предполагаю, что он снова загружается [снова]?) при нажатии на кнопку A. После этого нажатие на кнопку B немедленно воспроизводит звук A снова. То же самое для кнопки С. В некоторых случаях будет воспроизводиться другой звук, иногда даже правильный. Но в основном звук А. Используемый формат был .aiff, сейчас .m4a.

После того, как я написал несколько крошечных версий, я решил использовать библиотеку Buzz для обработки загрузки/воспроизведения/и т.д. звука.

Как ни странно, их демо-версия включает игру, которая делает практически то же самое, что мне нужно и вызывает такое же ошибочное поведение. Я даже попал в ситуацию, когда любой аудиоплеер в мобильном Safari на любой вкладке воспроизводил определенный звук из демо-игры Buzz (!).

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

Удалось ли кому-нибудь заставить что-то подобное работать? (- Видя, как Apple справляется с некоторыми вещами, я не ожидаю большого отклика, хотя... )


Обновление 1:

Пример в этом ответе вызывает тот же эффект: Как синтезировать звук с помощью HTML5/Javascript на iPad


Обновление 2:

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

После удаления манифеста кэша приложение работает нормально, но добавление его на "главный экран" и повторная загрузка также не позволяют воспроизводить аудио.

6
задан Community 23 May 2017 в 11:46
поделиться