0

嘿伙计们想知道你是否可以帮助我。

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

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

我 git clone 存储库并安装了 mtasc 和 swfmill 运行 ./build.sh

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

这会在 swf 文件夹中创建一个新的 swf,但是它的大小为 869 字节并且不起作用,而示例文件夹中的 swf 是 1.89 KiloBytes 并且可以工作......所以我的构建过程一定有问题。

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

有人可以尝试做我所做的事情,看看他们是否可以确定我做错了什么。

谢谢,

安迪

4

2 回答 2

1

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

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 行,有 2 个不同之处:

第 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”的正确更正。所以,如果你有一个想法……</p>

于 2011-10-14T14:03:05.613 回答
0

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

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

  • 在一个干净的项目结帐时,我也得到了 869 字节的文件,所以你的情况是正确的
  • 您似乎正在比较从 v0.1 到 v0.2 的 swf 文件。如果您查看示例文件夹,所有 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);

一个 hacky 组合,但是......如果你用build.sh脚本构建它,你应该得到一个 897 字节的 swf 应该可以工作。

请注意,您必须使用red-0.2示例文件夹中的 html,并且您必须首先单击Get the Camera List按钮,然后更改相机(只需选择第二个(空)项目并返回到第一个,它应该具有您的相机名称,如系统)在被填充的组合框中。完成此操作后,您应该从 Flash 中获得允许/拒绝对话框(除非您明确启用此功能),然后它应该可以正常工作。

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

希望这可以帮助。

于 2011-08-16T03:36:42.637 回答