Мне, конечно, кажется, что это должно работать, и я не могу найти документацию, в которой говорится, что она не должна работать (ни от W3C, ни от таких поставщиков, как Apple), но помещает аудиофайлы поскольку ресурсы в манифесте кеша просто не работают с Safari, по крайней мере, на iPad и iPhone.
Звучит нормально, когда приложение находится в сети (хотя кажется, что они загружаются заново каждый раз, а не кэшируются), и не жалуется на отсутствие ресурсов в автономном режиме (что происходит немедленно, если вы не забудьте включить ресурсы JavaScript, CSS, HTML или изображения).
вместо жалоб (или загрузки); если элемент имеет элемент управления, этот элемент управления заменяется полем с надписью «Не удается воспроизвести аудиофайл». В качестве альтернативы, если это элемент без элемента управления - то есть доступ через JavaScript для всех к .play () - тогда он просто не воспроизводится (не вызывает никаких ошибок, просто нет звука, в противном случае JavaScript продолжает выполняться нормально).
Я проверил это с довольно маленькими (<20 КБ) файлами, и результат тот же, так что, похоже, он не связан с размером, а является общим отказом от копирования. <strike>Я не уверен, что вы можете кодировать звук как ресурс на странице (например, закодированный в base64) так, как вы можете использовать изображения, но я собираюсь исследовать этот вариант - я подозреваю, что это было бы возможно. Я пытался кодировать аудиоданные в виде строк URI данных и даже пытался генерировать звук на лету - оба прекрасно работают в Safari на рабочем столе, но не работают на ОС iPhone / iPad (по крайней мере, в версии 3.x - у меня нет попробовал на iOS 4, но он не выйдет неделю и не ожидается для iPad в течение нескольких месяцев, даже если они это исправят).
Я бы предположил, что отказ кэшировать звуковые файлы в iOS - это ошибка реализации или предполагаемая ограниченная функциональность. Это, конечно, раздражает, и шоу-стопор для многих случаев использования.
Я не уверен, что происходит с другими клиентами HTML5, мне было бы интересно узнать (в частности, на Andriod). Поддержка Google аудио также не была звездной, поэтому на нее могут накладываться те же ограничения.