首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >针对CamCanvas的MTASC和SWFMill的帮助

针对CamCanvas的MTASC和SWFMill的帮助
EN

Stack Overflow用户
提问于 2011-08-07 05:43:07
回答 2查看 621关注 0票数 0

嘿,伙计们,想知道你们能不能帮我。

我正在尝试在本地编译以下代码:https://github.com/taboca/CamCanvas-API-

这是camcanvas,一个网络摄像头的javascript api。无论如何-它的build.sh重新生成了javascript调用的swf。

我用git克隆了存储库,并安装了mtasc和swfmill run./build.sh。

build.sh文件如下所示:https://github.com/taboca/CamCanvas-API-/blob/master/build.sh

这会在swf文件夹中创建一个新的swf,但是它的大小是869字节,不起作用,而examples文件夹中的swf是1.89 KiloBytes,do work....so我的构建过程中肯定出了什么问题。

当我去尝试新的swf时,页面没有要求我允许使用摄像头和麦克风-它根本不显示任何视频。帮助!

有没有人可以试着做我做过的事情,看看他们是否能确定我做错了什么。

谢谢,

安迪

EN

回答 2

Stack Overflow用户

发布于 2011-10-14 22:03:06

它不适用于他们提供的脚本:

代码语言:javascript
复制
swfmill simple library.xml camcanvas.swf
mtasc -version 8 -swf camcanvas.swf -main camcanvas.as

但是,如果您使用以下命令更新原始camcanvas,则它是可用的:

代码语言:javascript
复制
copy Originalcamcanvas.swf camcanvas.swf
mtasc -version 8 -swf  camcanvas.swf -main camcanvas.as

使用2进程时,camcanvas.swf的大小为819字节

如果你使用:swfmill swf2xml camcanvas.swf >camcanvas.txt进行反编译

你有两个相似的文本文件,有968行,有两个不同之处:

第14行:DefineSprite objectID="**1**" frames="1" ==> DefineSprite objectID="**2**" frames="1"

第21行:Symbol objectID="**1**" name="ObjetVideo" . . . . ==> Symbol objectID="**2**" name="ObjetVideo"

这足以阻挡闪电侠。

我没有发现“library.xml”的正确更正。所以如果你有一个想法,…

票数 1
EN

Stack Overflow用户

发布于 2011-08-16 11:36:43

这似乎是代码中的错误。更好的是,samples/*文件夹中的swf文件似乎是从不同的来源编译而来的,而不是github上当前的来源。

无论如何,以下是我对这种情况的评论:

  • 在一个干净的项目签出,我也得到了869字节的文件,所以你的情况是正确的,你似乎是在比较swf文件从v0.1到v0.2。如果查看samples文件夹,除了samples/red-0.2中的文件外,所有swf文件都是完全相同的。不管怎样,文件名中的版本暴露了它。这个文件有868个字节(见鬼,那一个字节...),但是除了有相似的大小之外,它看起来并不是内容相似的(即,这个文件和我生成的文件在内容方面的差异是相当大的)

因为我自己不太精通as2,所以我不知道到底是什么问题,但我找到了以下链接:

  • http://braindump.dk/tech/.../taking-a-picture-with-a-webcam-from-flash/

顺便说一句,它似乎和这个项目做的差不多,看起来很值得一看。

我可以通过更改以下内容来使其工作:-从上面的链接中获取xml,并用它替换项目根目录中的library.xml文件的内容(我离开了第一个xml行,但没有它应该可以工作)-在src/camcanvas.as中更改以下行

代码语言:javascript
复制
_root.attachMovie("ObjetVideo", "webcamVideo", 1);
_root.webcamVideo.attachVideo(_root.cam);

具有以下功能:

代码语言:javascript
复制
var display = _root.attachMovie("VideoDisplay", "display", 1);
_root.webcamVideo = display.video;
display.video.attachVideo(_root.cam);

一个老套的组合但是..。如果您使用build.sh脚本构建此脚本,则应该会得到一个897字节的swf。

请注意,您必须使用red-0.2示例文件夹中的html,并且必须首先单击Get the Camera List按钮,然后在填充的组合框中更改相机(只需选择第二个(空)项并返回到第一个,它应该具有系统已知的相机的名称)。完成此操作后,您应该会从Flash获得Allow/Deny对话框(除非您显式启用了此对话框),并且在此之后,它应该会正常工作。

此外,在我的机器上,它不能从本地存储的文件中工作-我必须将它放在(本地) Web服务器上才能使其工作。这可能与安全限制有关。如果您以类似的方式尝试,请记住这一点。

希望这能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6969100

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档