使用 DRMManager 類別

Flash Player 10.1 以及更新的版本,Adobe AIR 1.5 以及更新的版本

使用 DRMManager 類別,管理應用程式中的憑證和媒體權限伺服器工作階段。

憑證管理 (僅限 AIR)

只要使用者播放保護的內容,執行階段就會取得和快取檢視內容所需的授權。如果應用程式在本機儲存檔案,且授權允許離線播放,使用者就可以在 AIR 應用程式中檢視內容。像這樣的本機離線播放,就算在無法連線至媒體權限伺服器時也能夠成功播放。使用 DRMManager 和 NetStream preloadEmbeddedMetadata() 方法,您可以預先快取憑證。應用程式不需要取得檢視內容所需的授權。例如,您的應用程式可以在使用者仍處於線上時下載媒體檔並取得憑證。

若要預先載入憑證,請使用 NetStream 的 preloadEmbeddedMetadata() 方法來取得 DRMContentData 物件。DRMContentData 物件含有媒體權限伺服器的 URL 和網域,該伺服器可提供授權並說明是否需要驗證使用者。有了這項資訊以後,您便可以呼叫 DRMManager 的 loadVoucher() 方法來擷取並快取憑證。如需有關預先載入憑證的工作流程的詳細資訊,請參閱預先載入憑證以進行離線播放

工作階段管理

您也可以使用 DRMManager 來向媒體權限伺服器驗證使用者的權限,並可以管理持續性的工作階段。

您可以呼叫 DRMManager 的 authenticate() 方法來建立媒體權限伺服器的工作階段。當成功完成驗證以後,DRMManager 就會傳送 DRMAuthenticationCompleteEvent 物件。此物件含有一個工作階段權杖。您可以儲存此權杖來建立未來的工作階段,使用者便不再需要提供他們的帳戶憑證。請將此權杖傳遞至 setAuthenticationToken() 方法,以建立一個通過驗證的新工作階段 (產生權杖之伺服器的設定決定權杖到期時間及其他特質。AIR 應用程式程式碼不應解譯權杖資料結構,因為未來的 AIR 更新可能會變更結構)。

您可以將驗證權杖傳輸給其它電腦。若要保護權杖,您可以將它們儲存在 AIR 加密本機儲存區中。請參閱加密本機儲存以取得詳細資訊。

DRMStatus 事件

順利呼叫 loadVoucher() 方法之後,DRMManager 會傳送 DRMStatusEvent 物件。

如果已取得憑證,則事件物件之 detail 屬性 (僅限 AIR) 的值會是 "DRM.voucherObtained",而且 voucher 屬性會包含 DRMVoucher 物件。

如果未取得憑證,則 detail 屬性 (僅限 AIR) 的值還是 "DRM.voucherObtained";不過,voucher 屬性會是 null。例如,如果您使用 localOnly 的 LoadVoucherSetting,而且沒有本機快取的憑證,則無法取得憑證。

如果 loadVoucher() 呼叫未順利完成 (也許是因為發生驗證或通訊錯誤),則 DRMManager 會改為傳送 DRMErrorEvent 或 DRMAuthenticationErrorEvent 物件。

DRMAuthenticationComplete 事件

當透過呼叫 authenticate() 方法而成功驗證使用者時,DRMManager 就會傳送 DRMAuthenticationCompleteEvent 物件。

DRMAuthenticationCompleteEvent 物件含有一個可重複使用的權杖,該權杖可讓使用者驗證的效力在所有應用程式工作階段之間持續存在。將此權杖傳遞給 DRMManager setAuthenticationToken() 方法,以重新建立工作階段 (權杖特質 (例如到期時間) 是由權杖建立者所設定。Adobe 不提供檢查權杖特質的 API)。

DRMAuthenticationError 事件

當透過呼叫 authenticate()setAuthenticationToken() 方法並無法成功驗證使用者時,DRMManager 就會傳送 DRMAuthenticationErrorEvent 物件。