Будет ли HTML5 поддерживать доступ к автономному кешированному аудио? - PullRequest
9 голосов
/ 04 июня 2010

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

Ответы [ 3 ]

8 голосов
/ 14 июня 2010

Мне, конечно, кажется, что это должно работать, и я не могу найти документацию, в которой говорится, что она не должна работать (ни от 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 аудио также не была звездной, поэтому на нее могут накладываться те же ограничения.

1 голос
/ 04 июня 2010

Вы всегда можете разработать слой декодирования / кодирования, который взаимодействует с клиентской базой данных SQLlite

0 голосов
/ 04 июня 2010

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

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