javascript - 在 JavaScript 和 ActionScript 之间共享数组引用

标签 javascript arrays actionscript-3 flash pass-by-reference

我一直在使用 WebcamJS 库在浏览器中流式传输来自摄像头的视频,但遇到了主要的性能瓶颈。由于我使用的是 Internet Explorer 11(并且无法切换到其他浏览器),因此该库将恢复为 Flash 后备来访问相机。

由于步骤较多,返回图像的 ActionScript 回调速度非常慢。当它返回图像时,它首先将其字节数组编码为 PNG 或 JPG,然后编码为 Base 64 字符串。然后使用ExternalInterface将该字符串传递给JavaScript,后者通过数据URI对图像进行解码。鉴于我需要的只是 JavaScript 中的字节数组,这些额外的步骤似乎很浪费。

我之前曾在 C++/Python 中解决过类似的问题。我没有在两种语言之间重复地来回传递数组数据,而是使用 Python 在程序开始时传递 NumPy 数组引用。然后,他们就可以访问相同的数据,无需任何额外的通信。

既然您了解了我的情况,那么问题来了:是否可以通过引用 ActionScript 来传递 JavaScript Array 或 ArrayBuffer?在这种情况下,我可以让 ActionScript 直接修改 JavaScript 数组,而不是浪费时间转换、编码和解码每个帧的图像。

(网络摄像头JS:https://github.com/jhuckaby/webcamjs)

最佳答案

为了完整起见,闪存中的 SharedObjects 存储数据,并使用 AMF 协议(protocol)序列化到文件系统上(在一个非常特定的、沙盒和锁定的位置),Javascript 无法访问该文件系统来读取数据。

您是否尝试过简单地调用ExternalInterface方法并传递一个字节数组作为参数?它将按值传递,自动从 Actionscript 数据结构转换为 Javascript 数据结构,但您会跳过所有编码步骤,并且它应该足够快......

关于javascript - 在 JavaScript 和 ActionScript 之间共享数组引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38309653/

相关文章:

actionscript-3 - onPlayStatus as3

javascript - 通过下拉菜单更改 iframe src 不会加载新的 iframe

javascript - Instagram OAuthException : you must provide a client_id 错误

Java 8 : How does `QUICKSORT_THRESHOLD=286` comes from?

C++ 数组构造函数

actionscript-3 - AS3 | 1120 : Access of undefined property stage

javascript - Kendo UI 加载完成事件

javascript - 我如何在 Angular 4 项目中使用 jquery owlCarousel

Java - 无法将用户输入注入(inject)空数组(用于注册产品的基于文本的应用程序)

actionscript-3 - ActionScripts3 影片剪辑点击事件问题