更新 Flash Player 以支持 Flash Access

Flash Player 10.1 和更高版本

要支持 Flash Access,Flash Player 需要 Flash Access 模块。Flash Player 尝试播放保护的内容时,运行时指示是否必须下载该模块或 Flash Player 的新版本。这样,如果需要,Flash Player 会允许 SWF 开发人员选择不进行更新。

大多数情况下,SWF 开发人员需要更新到所需的 Flash Access 模块或播放器才可以播放受保护的内容。要进行更新,您可以使用 SystemUpdater API 获取最新版本的 Flash Access 模块或 Flash Player。

SystemUpdater API 每次只允许进行一个更新。错误代码 2201 指示正在当前运行时实例或其他实例中进行更新。例如,如果正在 Internet Explorer 中对 Flash Player 实例进行更新,则无法对在 FireFox 中运行的 Flash Player 实例进行更新。

桌面平台仅支持 SystemUpdater API。

注: 对于 Flash Player 10.1 以前的版本,请使用早期播放器版本中支持的更新机制(从 www.adobe.com 或 ExpressInstall 手动下载并安装)。另外,AIR 安装程序处理 Flash Access 的必要更新且不支持 SystemUpdater API。

侦听更新事件

需要对 Flash Access 模块进行更新时,NetStream 对象调度其代码值为 DRM.UpdateNeeded 的 NetStatusEvent。此值表示 NetStream 对象无法播放当前安装了 Flash Access 模块的任何保护流。侦听此事件并调用以下代码:

SystemUpdater.update(flash.system.SystemUpdaterType.DRM)
此代码更新安装在播放器中的 Flash Access 模块。不需要经过用户同意即可对此模块进行更新。

如果找不到 Flash Access 模块,则会引发错误。请参阅详细的 API 工作流程中的步骤 3。

注: 如果在 10.1 之前的播放器版本中的加密流上调用 play(),则会调度其代码值为 NetStream.Play.StreamNotFound 的 NetStatusEvent。对于早期版本的播放器,请使用这些播放器支持的更新机制(从 www.adobe.com 或 ExpressInstall 手动下载并安装)。

需要对播放器本身进行更新时,SystemUpdater 对象将调度 StatusEvent,该事件的代码值 DRM.UpdateNeededButIncompatible 已调度。对于播放器更新,必须经过用户同意。在您的应用程序中,为用户提供一个用于表示同意并启动播放器更新的界面。侦听 StatusEvent 事件并调用以下代码:

SystemUpdater.update(flash.system.SystemUpdaterType.SYSTEM);
此代码启动播放器更新。

SystemUpdater 类的其他事件都记录在用于 Adobe Flash Platform 的 ActionScript 3.0 参考中。

播放器更新完成后,将用户重定向到开始进行更新的页面。已下载 Flash Access 模块,可以开始播放该流。