Помощь с MTASC и SWFMill для CamCanvas - PullRequest
0 голосов
/ 07 августа 2011

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

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

Это camcanvas javascript api для веб-камеры.В любом случае - его build.sh переделывает swf, для которого javascript выполняет вызовы.

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

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

Это создает новый SWF-файл в папке SWF, однако он имеет размер 869 байт и не работает, тогда как SWF-файлы в папке примеров составляют 1,89 килобайта и работают.... так что, должно быть, что-то идет не так с моим процессом сборки.

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

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

Спасибо,

Энди

Ответы [ 2 ]

1 голос
/ 14 октября 2011

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

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». Так что, если у вас есть идея ...

0 голосов
/ 16 августа 2011

Это похоже на ошибку в коде. Более того, 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 sample, и вы должны сначала нажать кнопку Get the Camera List, а затем изменить камеру (просто выберите второй (пустой) элемент и вернитесь к первому, который должен иметь имя вашей камеры, известное системе) в поле со списком, которое заполняется. После того, как вы это сделаете, вы должны получить диалоговое окно «Разрешить / запретить» из Flash (если вы явно не включили это), и оно должно прекрасно работать после этого.

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

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

...