Проблема с кэшированием в Flash Player 11.7

Укороченная версия:

Наше приложение Flash - это потоковое видео с нашего CDN, начиная с недавнего выпуска Flash Player 11.7.

Фон:

У нас есть приложение Flash, которое запускается в браузере. Мы видим проблему с IE 8, 9, 10, в Windows XP и Windows 7. И 32-разрядная, и 64-разрядная.

Когда наше приложение отправляет запрос на видео в наш CDN, браузер отказывается его кэшировать, и это вызывает большой сетевой трафик. Кэширование хорошо работало в Flash Player 11.6.

Выпуск:

Используя Fiddler, мы сравнили HTTP-запросы в хороших и плохих случаях. Единственное отличие состоит в том, что в Flash Player 11.7 необработанный запрос содержит:

Pragma: no-cache

Я понимаю, что это зависит от реализации и не поддерживается. Обратите внимание, что мы не хотим этого.

Мы используем платформу OSMF (версия 2.0) и имеем доступ к источнику.

Код:

Конкретный код (значительно абстрагированный):

resource = new URLResource(url);
player = new MediaPlayer();
factory = new DefaultMediaFactory();
element = factory.createMediaElement(resource);
player.media = element;

Вопрос:

У кого-нибудь есть решение для этого?

Идеи включают в себя:

  • Предлагаемые патчи для OSMF
  • Настройки для Flash Player. Возможно ли, что IE теперь считает FP 11.7 прокси?
  • другие идеи. Конфигурация CDN?

К сожалению, использование другого браузера для нас не вариант.

1 ответ

Решение

Короче говоря, у нас сработало следующее:

Изменить это:

var playerResource:URLResource = new URLResource(url); 

к этому:

var playerResource:StreamingURLResource = new StreamingURLResource(url); 
playerResource.streamType = StreamType.LIVE_OR_RECORDED;

Подробно мы знаем, что OSMF 2.0 не менялся между Flash 11.6 и Flash 11.7. Тем не менее, кажется, что интерпретация значения по умолчанию streamType действительно изменился, возможно, случайно. Flash 11.7 обрабатывает значение по умолчанию, как если бы оно было "живым потоком" и не кэшируется.

Указав streamType в явном виде все возвращается на круги своя. В запросе HTTP отсутствует "Pragma: no-cache". Наше приложение вызывает видео один раз, а затем оно кэшируется. Это исправление также работает в оригинальном env, Flash 11.6.

Другие вопросы по тегам