如何在没有插件的情况下嵌入Flash SWF内容

Macromedia(以及后来的Adobe)Flash是专门用于开发动画的平台,其中包含丰富的富Web应用程序和游戏。Flash一直备受争议,但它确实为大众带来了娱乐,并且这项技术可以使人们可以在网络上广泛使用高质量的流视频。

2020年12月,Adobe停止了支持浏览器的Flash插件。尽管多年来插件的性能和安全性问题一直困扰着许多人,但是这也意味着用Flash构建并以SWF(小型Web格式)文件发布的,这数十年积累的内容,将不再通过官方浏览器的Flash插件的方式给大家使用。

十分悲剧的是,我们如此庞大的数字文化遗产可能会因数字侵蚀而永远消失。但值得庆幸的是,自Flash时代以来,这项技术已经得到发展。存档数字内容的组织Internet Archive已宣布,他们将保持Flash内容可供后代使用。

在浏览器中模拟Flash插件

Flash之所以流行,是因为它可以提供比Web浏览器更多的功能。从那时起,网络技术得到了发展,如今可以在浏览器中实现Flash插件功能。你可以使用模拟器在新计算机上模仿旧游戏机的功能来玩旧游戏,也可以使用Flash插件和现代的浏览器功能执行相同的操作。

这可以通过多种方式实现,如以下三种产品:

  • Shumway
  • Ruffle
  • CheerpX for Flash

Shumway是用JavaScript编写的实验性Flash VM和运行时。该项目是由Mozilla开发的,此后已中止。对于非常复杂的SWF文件,Shumway并不(始终)具有出色的性能或100%的兼容性,但是可以接受Cebit 1999Kim Dotcom的Megacar演示文稿

Ruffle是用Rust编写的Flash Player模拟器。Ruffle以wasm可执行文件的形式发布,可以在现代浏览器中运行。WebAssembly是一种比JavaScript更简单的技术,因此似乎是在浏览器中运行复杂应用程序(如Flash Plugin模拟器)的完美目标。它是开放的,正在积极开发中,并被互联网档案馆用于存档。

CheerpX for Flash 采用了不同的方法,使用了WebAssembly在浏览器sandbox虚拟化并运行完整的Adobe Flash Player 。它的优点是,与重新实现Flash插件的Shumway或Ruffle不同,它提供了与所有SWF内容的100%兼容性。该产品来自 Leaning Technologies,这是一家专门通过WebAssembly延长应用程序寿命的公司。

数字侵蚀是一场灾难

除了模拟之外,还有许多方法可以将Flash内容转换为Web技术(“ Flash-to-HTML5”似乎是流行语)。这些也是一个选项,但是仿真方法更实用,因为它将采用任何SWF包并按原样执行。我觉得仿真对于保存来说是更好的方法,因为它可以更好地保护你的内容免受数字侵蚀,但是无法解密。

说到可用性,这是另一个重要方面。数据的侵蚀绝不是新鲜事,因为我们已经经历了许多物理格式的数字数据,例如磁带,磁盘和光盘,以及固态存储例如USB记忆棒。可能你拥有数据的物理副本,但由于没有磁盘可读取而无法访问。或者,介质本身(例如可录制CD)可能随时间推移腐烂

物理副本本身越来越难获得。由于你的数据“在云端”,你可能永远都不会拥有它的副本。今天,对于Google和其他提供“永久免费存储”的公司来说,这似乎不是问题。如果永远结束怎么办?很难看到像Facebook,Apple或Microsoft这样的巨头步履蹒跚,但迄今为止,在人类历史上,没有一个帝国能够永远持续下去。对你来说,这可能永远不是问题,但对于未来的数字考古学家来说,这可能是他们探索模拟过去的过程。

但是回到今天,历史上的一个时代现在以Adobe Flash Player的生命终结而结束。有些人会在1993年始于FutureWave SmartSketch这项技术的坟墓上跳舞。有人会说,由于乔布斯本人不支持在iPhone上使用Flash而是选择了Web技术,所以杀死了Flash。我当然不会错过安装或更新插件的过程,但是我可以确定的是,使用Flash构建的许多内容绝对值得保留。

haik ourfalUnsplash拍摄的照片

原文作者 Jani Tarvainen
原文链接 https://developers.ibexa.co/blog/embed-flash-swf-content-without-adobe-plugin

推荐阅读
作者信息
AgoraTechnicalTeam
TA 暂未填写个人简介
文章
114
相关专栏
本专栏仅用于分享音视频相关的技术文章,与其他开发者和 Agora 研发团队交流、分享行业前沿技术、资讯。发帖前,请参考「社区发帖指南」,方便您更好的展示所发表的文章和内容。