Не так давно по интернету «прогремела» новость о том, что Google Chrome блокирует автопроигрывание flash контента с 1 сентября 2015 года.
Судя по комментариям самого гиганта, делается это исключительно из благих намерений заботы о пользователе:
В качестве альтернативы Google предложил использовать технологию HTML5 и ПО позволяющее конвертировать из swf в html5.
Но, что если по какой-либо причине вы не готовы менять flash на html5? Ниже я поделюсь результатами (моих и общественных) экспериментов на тему как обойти блокировку автопроигрывания flash в Chrome.
Суть проблемы в том, что при вставке swf файла:
Пользователь, открывший страницу в Chrome, получит «заблокированное» содержимое swf ролика (баннера):

Результатом наблюдений моих и моих коллег, явилось то что, чтобы блокировка автопроигрывания не сработала, необходимо выполнение любого из условий:
Попробуем выполнить первое условие и посмотрим что получится. У меня получилось сделать это через nginx. Добавим новый location в конфигурационный файл, такого содержания:
Вставим наш swf файл:
У нас получилось! Содержимое flash не заблокировано после перезагрузки страницы:

Судя по комментариям самого гиганта, делается это исключительно из благих намерений заботы о пользователе:
- flash небезопасен;
- flash беспощаден к заряду батареи;
- на flash делается огромное количество назойливой рекламы.
В качестве альтернативы Google предложил использовать технологию HTML5 и ПО позволяющее конвертировать из swf в html5.
Но, что если по какой-либо причине вы не готовы менять flash на html5? Ниже я поделюсь результатами (моих и общественных) экспериментов на тему как обойти блокировку автопроигрывания flash в Chrome.
Суть проблемы в том, что при вставке swf файла:
<object width="728" height="90" id="swfContent">
<param name="movie" value="http://www.flashbannernow.com/dl2/dm/demo_728x90.swf">
<embed src="http://www.flashbannernow.com/dl2/dm/demo_728x90.swf" width="728" height="90">
</embed>
</object>
Пользователь, открывший страницу в Chrome, получит «заблокированное» содержимое swf ролика (баннера):

Результатом наблюдений моих и моих коллег, явилось то что, чтобы блокировка автопроигрывания не сработала, необходимо выполнение любого из условий:
- flash файл должен быть на том же домене, что и запрашиваемая страница;
- flash файл должен занимать определенную площадь экрана: быть маленьким по ширине/высоте, либо наоборот большим.
Попробуем выполнить первое условие и посмотрим что получится. У меня получилось сделать это через nginx. Добавим новый location в конфигурационный файл, такого содержания:
location /banner {
proxy_pass http://www.flashbannernow.com/dl2/dm/;
}
Вставим наш swf файл:
<object width="728" height="90" id="swfContent">
<param name="movie" value="/banner/demo_728x90.swf">
<embed src="/banner/demo_728x90.swf" width="728" height="90">
</embed>
</object>
У нас получилось! Содержимое flash не заблокировано после перезагрузки страницы:
