Помощь с MTASC и SWFMill для CamCanvas

Эй, ребята, интересно, можете ли вы помочь мне.

Я пытаюсь локально скомпилировать следующее: https://github.com/taboca/CamCanvas-API-

Это camcanvas API Java для веб-камеры. В любом случае - его build.sh переделывает SWF, для которого JavaScript делает вызовы.

Я клонирую репозиторий и установив mtasc и swfmill, запустите./build.sh

файл build.sh выглядит следующим образом: https://github.com/taboca/CamCanvas-API-/blob/master/build.sh

Это создает новый swf в папке swf, однако он имеет размер 869 байт и не работает, в то время как swfs в папке примеров составляют 1,89 килобайта и работают... поэтому что-то не так с моим процессом сборки.

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

Может кто-нибудь попытаться сделать то, что я сделал, и посмотреть, смогут ли они определить, что я делаю неправильно.

Спасибо,

Энди

2 ответа

Его нельзя использовать со скриптом, который они предоставляют:

swfmill simple library.xml camcanvas.swf
mtasc -version 8 -swf camcanvas.swf -main camcanvas.as

Но это полезно, если вы обновите оригинальный camcanvas с помощью:

copy Originalcamcanvas.swf camcanvas.swf
mtasc -version 8 -swf  camcanvas.swf -main camcanvas.as

При использовании процесса 2 размер camcanvas.swf составляет 819 байт.

Если вы декомпилируете с: swfmill swf2xml camcanvas.swf >camcanvas.txt

У вас есть 2 одинаковых текстовых файла с 968 строками с двумя отличиями:

Строка 14: DefineSprite objectID="**1**" frames="1" ==> DefineSprite objectID="**2**" frames="1"

Строка 21: Symbol objectID="**1**" name="ObjetVideo" . . . . ==> Symbol objectID="**2**" name="ObjetVideo"

И этого достаточно, чтобы заблокировать Flash.

Я не нашел хорошего исправления "library.xml". Так что если у вас есть идея...

Кажется, это ошибка в коде. Еще лучше, файлы SWF в samples/* папки, похоже, скомпилированы из другого источника, чем тот, который в настоящее время находится на github.

Во всяком случае, вот мои комментарии к ситуации:

  • При чистой проверке проекта я также получаю файл размером 869 байт, так что ваша ситуация верна
  • Вы, кажется, сравниваете SWF-файлы с v0.1 до v0.2. Если вы посмотрите в папке примеров, все SWF-файлы точно так же, за исключением одного в samples/red-0.2, В любом случае, версия в имени файла выдает его. Этот файл имеет 868 байт (черт возьми, этот один байт...), но кроме того, что он имеет похожий размер, он не похож на контент (т.е. разница между этим файлом и файлом, который я создал, была довольно большой по содержанию)

Поскольку я сам не очень хорошо разбираюсь в as2, я не смог понять, в чем именно проблема, но нашел следующую ссылку:

что, на заметку, похоже, делает то же самое, что и этот проект, и на него стоит обратить внимание.

Я мог бы заставить его работать, изменив это: - Возьмите xml по ссылке выше и замените содержимое library.xml файл в корне проекта с этим (я оставил первую строку XML, но должен работать без этого) - измените следующие строки в src/camcanvas.as

_root.attachMovie("ObjetVideo", "webcamVideo", 1);
_root.webcamVideo.attachVideo(_root.cam);

со следующим:

var display = _root.attachMovie("VideoDisplay", "display", 1);
_root.webcamVideo = display.video;
display.video.attachVideo(_root.cam);

Хакерская комбинация, но... Если вы построите это с build.sh скрипт, вы должны получить 897-байтный SWF, который должен работать.

Обратите внимание, что вы должны использовать HTML из red-0.2 образец папки, и вы должны сначала нажать на Get the Camera List нажмите кнопку, затем измените камеру (просто выберите второй (пустой) элемент и вернитесь к первому, в котором должно быть имя вашей камеры, известное системе) в поле со списком, которое заполняется. После того, как вы это сделаете, вы должны получить диалоговое окно "Разрешить / запретить" из Flash (если вы явно не включили это), и оно должно прекрасно работать после этого.

Кроме того, на моей машине он не работал с файлом, хранящимся локально - мне пришлось поместить его на (локальный) веб-сервер, чтобы он заработал. Вероятно, это связано с ограничениями безопасности. Имейте это в виду, если вы попробуете подобным образом.

Надеюсь это поможет.

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