Как проверить, воспроизводится ли флэш-анимация с помощью PHP? - PullRequest
3 голосов
/ 26 октября 2011

Я занимаюсь разработкой веб-приложения на PHP и мне нужно проверить, есть ли на странице сайта фоновая музыка.Как многие из вас уже знают, это список тегов (я кого-то скучаю?), Куда можно вставить фоновый звук на веб-странице:

  1. Вставить
  2. Объект
  3. Bgsound
  4. Аудио (HTML5)

При проверке наличия фонового звука из-за присутствия тега bgsound или audio легко выполнить тестированиеесли во флеш анимации есть звук не так просто (по крайней мере для меня).Я знаю, что могу проверить, имеет ли тег embed в атрибуте src что-то вроде sound.mp3, но как я могу проверить, полностью ли звук встроен во флэш-анимацию?

Я много искалчтобы найти ответ, но, к сожалению, я не нашел его.

Спасибо всем, кто ответит на мой вопрос.

1 Ответ

3 голосов
/ 26 октября 2011

SWF-файл состоит из нескольких различных тегов , каждый из которых описывает различный тип содержимого; растровые изображения, ActionScript, формы, шрифты и действительно звуки. Поэтому мы можем загрузить SWF-файл, прочитать теги и посмотреть, есть ли там какие-либо связанные со звуком теги (для музыки вы бы специально искали теги, связанные с потоковым звуком).

Чтобы сделать это, вы должны использовать некоторую SWF-библиотеку (я не знаю ни одной для PHP, но я уверен, что они существуют), или вы можете реализовать свою собственную, основываясь на спецификации .

Однако, это может обнаружить только те случаи, когда звук действительно внедрен , что может быть совсем не так - звук может передаваться из внешнего файла и обрабатываться полностью в ActionScript (и действительно это не так уж редко)

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

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

Как видите, это может быстро стать очень, очень сложным, и поэтому практически невозможно обеспечить 100% точность. Вы должны будете сами определить, насколько точным должно быть ваше обнаружение (и, соответственно, сколько усилий вы готовы потратить на него).

...