更新 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。

備註: 如果是 10.1 之前的 Flash Player 版本,請使用舊版播放程式中支援的更新機制 (從 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 物件會傳送代碼值為 DRM.UpdateNeededButIncompatible 的 StatusEvent。若要更新播放程式,則需要使用者同意。在您的應用程式中提供介面,讓使用者同意並起始播放程式的更新。偵聽 StatusEvent 事件,並呼叫下列程式碼:

SystemUpdater.update(flash.system.SystemUpdaterType.SYSTEM);
這個程式碼會起始播放程式的更新。

SystemUpdater 類別的其他事件記載於適用於 Adobe Flash Platform 的 ActionScript 3.0 參考中。

播放程式更新完成之後,會將使用者重新導向至更新的開始頁面。下載 Flash Access 模組,而且可以開始播放串流。