Можно ли кэшировать во флэш-памяти большие звуковые ресурсы?

StackOverflow https://stackoverflow.com/questions/801613

Вопрос

Я написал игру на Flash (AS3/Flex SDK/MXMLC), которая передает музыку и звуковые файлы с моего сервера.

Меня беспокоит пропускная способность — аудиокомпоненты занимают около 3 МБ, и если игра станет популярной, это приведет к значительному увеличению расходов на пропускную способность.

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

Я знаю о SharedObjects («файлах cookie»), но не думаю, что там можно хранить двоичные данные...или есть?

Это было полезно?

Решение

Когда ты говоришь "транслировать", Я предполагаю, что вы имеете в виду прогрессивную загрузку по HTTP.

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

В этом отношении в проигрывателе Flash нет ничего волшебного — все должно работать так, как если бы это была обычная старая веб-страница.

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

Обновление, вдохновленное комментариями: Вот возможный план, которому вы можете следовать в своих поисках...

  1. Сначала выясните, какой тип кэширования происходит, а какой нет.
    1. Очистите кеш браузера
    2. Рассмотрите вариант использования в вашей игре
    3. Пройдите его еще раз, ожидая увидеть тот же самый контент.
    4. Проверьте файлы журналов веб-сервера.Первая группа запросов должна иметь коды ответа HTTP 200.Для второй группы запросов, «кэшируемых» запросов на уже доставленные файлы, вы должны увидеть либо ничего или HTTP 304 (запрос просто для того, чтобы проверить, действителен ли кэшированный контент.) Если вы видите идентичные наборы запросов, все с 200 OK, то кэширование не происходит.
  2. Узнайте больше о кэшировании
    1. Установите плагин FireFox типа TamperData, следите за кеширующими заголовками
    2. Прочитайте спецификацию, знайте это.РФК 2616
    3. Эксперимент

Я не удивлюсь, если вы уже кэшировали контент, но просто не осознавали этого!

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top