Adobe Flash Player 的名称可能有点令人困惑,因为它并不是真正的播放器(不是像 VLC 或 Winamp 这样的媒体播放器),而是像 JVM(Java 虚拟机)或 CLR(公共语言运行时)这样的运行时。它带有一些能够播放视频的库,但这些库对于最终用户来说太低级了,无法观看视频。
从历史上看,对于那些从内部不熟悉该技术的人来说,Flash 一直与 You-Tube 相关联,因此流式传输视频,然而,它在一般技术中处于边缘地位。Flash 通常用于在网络上做许多其他事情,比如游戏或只是有用的互动事情,比如网上商店的更衣室或协作软件等。
用 Flash 编写视频播放器的方式与用 Java 或 C# 编写视频播放器的方式相同:您可以使用一些现成的组件或从头开始设计一个。
现在,已经有人尝试制作另一种(开源)Flash 播放器,较旧的是 Gnash,较新的是 Lightspark。目前,他们俩都做不了什么。也许,如果 Flash 技术能够度过危机,Lightspark 似乎是一个很有前途的项目。走着瞧...
ActionScript 是 Flash 编程的主要语言,就像 Java 对于 JVM 一样。但也有 Haxe,它可以编译成 Flash。还有一个称为 Alchemy 的交叉编译器项目,它可以编译任何可以编译为 LLVM 汇编器的语言,但实际上,主要是 C/C++。还有 OpenLazlo ......但我真的不知道它使用的是什么语言。
Flash 运行时可以以不同的方式分发。它可以是 NPAPI (Netscape Plugin API) 兼容插件(在 Mozilla 浏览器中运行的插件)、PPAPI 兼容插件(Pepper Plugin API,在 Google Chrome 中运行的插件)、ActiveX (Internet Explorer)。它可以是 Windows 或 OSX 的独立程序。Linux 存在独立版本,但最近已停产。Adobe 还停止了对 Linux 版本的 NPAPI 插件的支持。也有移动浏览器的播放器,但它们都在不同的时间停产。然而,独立版本已经发展成 AIR——这就是现代 Flash 在移动设备上的工作方式。AIR 也是适用于大多数台式机的版本(无 Linux,一年多前就停产了)。
Flash 播放器还有其他一些鲜为人知的用途。例如 Scaleform 是一个使用 Flash 播放器在 PC 游戏中渲染图形界面的项目。SWFStudio 和 MDM Zinc 是两家可以创建 OSX 和 Windows 程序的公司,它们嵌入了 Flash 播放器,并且可以与底层的原生应用程序互操作。.NET Framework 包含一个可用于开发 Windows.Forms 应用程序的 ActiveX(也可能是 WPF,但我从未尝试过)。从技术上讲,还应该可以通过绑定到它拥有的 WebKit 浏览器将 Flash 播放器(作为单独的安装)嵌入到基于 Qt 的应用程序中。