套件 | flash.net.drm |
類別 | public class DRMManager |
繼承 | DRMManager EventDispatcher Object |
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.5, Flash Player 10.1 |
DRMManager.getDRMManager()
方法,您可以存取現有的 DRMManager 物件以執行下列 DRM-management 工作:
- 使用 DRMContentData 物件,從媒體權限伺服器預先載入憑證。
- 使用 DRMContentData 物件查詢本機快取是否有個別的憑證。
- 重設所有的憑證 (僅限 AIR )
並無任何方法可供您列舉本機快取的所有憑證。
不要建立 DRMManager 類別的實體。請使用靜態方法 DRMManager.getDRMManager()
存取現有的 DRMManager 物件。
AIR 描述檔支援:所有桌上型電腦作業系統與 AIR for TV 裝置都支援此項功能,但行動裝置不支援。您可以使用 DRMManager.isSupported
屬性測試執行階段的支援狀況。如需有關跨多個描述檔之 API 支援的詳細資訊,請參閱 AIR 描述檔支援。
相關 API 元素
屬性 | 定義自 | ||
---|---|---|---|
constructor : Object
類別物件的參照或是特定物件實體的建構函數。 | Object | ||
isSupported : Boolean [靜態] [唯讀]
如果目前的平台支援 DRMManager 類別,則 isSupported 屬性會設為 true,否則會設為 false。 | DRMManager | ||
networkIdleTimeout : Number [靜態] | DRMManager |
方法 | 定義自 | ||
---|---|---|---|
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
會在 EventDispatcher 物件註冊事件偵聽程式,以便讓偵聽程式收到事件的通知。 | EventDispatcher | ||
將目前執行的裝置加入裝置群組。 | DRMManager | ||
驗證使用者。 | DRMManager | ||
會將事件傳送到事件流程。 | EventDispatcher | ||
[靜態]
傳回 DRMManager 物件的 Singleton 實體。 | DRMManager | ||
會檢查 EventDispatcher 物件是否有對特定的事件類型註冊偵聽程式。 | EventDispatcher | ||
指出物件是否有已定義的指定屬性。 | Object | ||
指出 Object 類別的實體是否位於指定為參數的物件原型鏈中。 | Object | ||
從授權伺服器取得預覽憑證,您可以用來讓使用者確認自己是否可以在特定電腦上播放內容。 | DRMManager | ||
從媒體權限伺服器或從本機憑證快取載入憑證。 | DRMManager | ||
指出指定的屬性是否存在,以及是否可列舉。 | Object | ||
會從 EventDispatcher 物件移除偵聽程式。 | EventDispatcher | ||
從裝置群組中移除目前執行的裝置。 | DRMManager | ||
在 AIR 應用程式中,這會刪除所有本機快取的數位版權管理 (DRM) 憑證資料。 | DRMManager | ||
將符合所有指定準則的所有憑證傳回給授權伺服器。 | DRMManager | ||
設定用來與指定之伺服器和網域通訊的驗證字符。 | DRMManager | ||
為迴圈作業設定動態屬性的可用性。 | Object | ||
DRMManager | |||
傳回代表此物件的字串,根據地區特定慣例進行格式化。 | Object | ||
會傳回指定之物件的字串形式。 | Object | ||
會傳回指定之物件的基本值。 | Object | ||
檢查此 EventDispatcher 物件是否已註冊事件偵聽程式,或者此物件的任何祖系已為特定事件類型註冊事件偵聽程式。 | EventDispatcher |
事件 | 摘要 | 定義自 | ||
---|---|---|---|---|
[廣播事件] 當 Flash Player 或 AIR 應用程式取得作業系統焦點並成為作用中時傳送。 | EventDispatcher | |||
呼叫 authenticate() 方法之後,如果使用者通過媒體權限伺服器驗證,DRMManager 就會傳送 DRMAuthenticationCompleteEvent 物件。 | DRMManager | |||
呼叫 authenticate() 方法之後,如果使用者未通過媒體權限伺服器驗證,DRMManager 就會傳送 DRMAuthenticationErrorEvent 物件。 | DRMManager | |||
[廣播事件] 當 Flash Player 或 AIR 應用程式失去作業系統焦點並成為非作用中時傳送。 | EventDispatcher | |||
無法從媒體權限伺服器取得要求的憑證時,DRMManager 就會傳送 DRMErrorEvent 物件。 | DRMManager | |||
從媒體權限伺服器取得要求的憑證時,DRMManager 就會傳送 DRMStatusEvent 物件。 | DRMManager |
isSupported | 屬性 |
networkIdleTimeout | 屬性 |
addToDeviceGroup | () | 方法 |
public function addToDeviceGroup(deviceGroup:DRMDeviceGroup, forceRefresh:Boolean = false):void
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 3.0, Flash Player 11.9 |
將目前執行的裝置加入裝置群組。
參數
deviceGroup:DRMDeviceGroup | |
forceRefresh:Boolean (default = false )
|
authenticate | () | 方法 |
public function authenticate(serverURL:String, domain:String, username:String, password:String):void
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.5, Flash Player 10.1 |
驗證使用者。
偵聽 authenticationComplete
和 authenticationError
事件,以判斷驗證嘗試的結果。多重 authenticate()
呼叫將排入佇列。當 authenticationComplete
事件含有應用程式能夠儲存的驗證字符時,就會傳送 AuthenticationCompleteEvent 物件。
應用程式可使用已儲存的驗證字符或經其他方式下載的字符,於日後與媒體權限伺服器建立已驗證工作階段。若要使用字符建立工作階段,請呼叫 DRMManager setAuthenticationToken()
方法。字符的屬性 (例如到期日) 取決於產生字符的伺服器各項設定。
重要 (僅限 AIR ):如果使用者透過需要驗證的 Proxy 伺服器進行網際網路連線,authenticate()
方法將不會成功。雖然這類使用者無法預先載入需要驗證的 DRM 憑證,應用程式仍可在開始播放後使用 NetStream setAuthenticationCredentials()
方法,讓使用者同時登入 Proxy 伺服器和媒體權限伺服器以取得憑證。一旦取得憑證之後,使用者就可以離線檢視內容 (只要此憑證所代表的授權允許離線播放即可)。
參數
serverURL:String — 媒體權限伺服器的 URL,此伺服器可提供檢視受保護內容所需的憑證
| |
domain:String — 伺服器上的網域 (並非網路或網際網路網域名稱)
| |
username:String — 使用者名稱
| |
password:String — 使用者密碼
|
相關 API 元素
getDRMManager | () | 方法 |
public static function getDRMManager():DRMManager
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.5, Flash Player 10.1 |
傳回 DRMManager 物件的 Singleton 實體。
每個安全性網域各有一個 DRMManager 實體存在。
傳回值DRMManager |
相關 API 元素
loadPreviewVoucher | () | 方法 |
public function loadPreviewVoucher(contentData:DRMContentData):void
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 2, Flash Player 10.1 |
從授權伺服器取得預覽憑證,您可以用來讓使用者確認自己是否可以在特定電腦上播放內容。這個功能讓使用者在購買及下載內容前,確認他們可以在電腦上播放內容。當使用者的電腦沒有必要的輸出保護功能或必要的軟體來播放內容時,這是非常實用的功能。
就像 loadVoucher()
,這個方法是非同步呼叫,且在發生錯誤時,會在完成 DRMErrorEvent 時發出 DRMStatusEvent。
參數
contentData:DRMContentData |
loadVoucher | () | 方法 |
public function loadVoucher(contentData:DRMContentData, setting:String):void
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.5, Flash Player 10.1 |
從媒體權限伺服器或從本機憑證快取載入憑證。
憑證的載入方式係依 setting
參數而定:
- LoadVoucherSetting.FORCE_REFRESH:永遠從媒體權限伺服器下載憑證。
- LoadVoucherSetting.LOCAL_ONLY:僅從本機快取載入憑證。
- LoadVoucherSetting.ALLOW_SERVER:如果可行,即從本機快取載入憑證;否則將從伺服器下載憑證。
LoadVoucherSetting 類別定義了做為 setting
參數值使用的字串常數。
成功載入憑證後,DRMManager 會傳送 DRM 狀態事件。一旦載入憑證,應用程式即可開始播放。透過所傳送的 DRMStatusEvent 物件,存取其 voucher
屬性便能取得載入的憑證。您可以利用此憑證物件,向使用者顯示相關的媒體權限資訊。
如果無法從媒體權限伺服器載入憑證,便會傳送 DRM 錯誤事件。所傳送的 DRMErrorEvent 物件,其 errorID
屬性表示失敗的原因。失敗的原因通常包括:使用者離線而嘗試連線到媒體權限伺服器,或是使用者尚未登入即嘗試載入憑證。應用程式可以回應這些事件並採取修正措施。例如,若必須有驗證認證才能下載憑證,您就可以提示使用者提供帳戶使用者名稱和密碼,然後呼叫 DRMManager authenticate()
方法再次嘗試載入憑證。
如果無法從本機快取取得憑證且載入方式設定為 localOnly
,便不會傳送 DRMErrorEvent。而是傳送 DRM 狀態事件。此 DRMStatusEvent 物件的 detail
屬性仍然是 DRM.voucherObtained
,但其 voucher
屬性則為 null
。
參數
contentData:DRMContentData — DRMContentData 物件,取自於由 DRM 保護的媒體檔
| |
setting:String — 決定應從本機快取或從媒體權限伺服器擷取憑證
|
removeFromDeviceGroup | () | 方法 |
public function removeFromDeviceGroup(deviceGroup:DRMDeviceGroup):void
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 3.0, Flash Player 11.9 |
從裝置群組中移除目前執行的裝置。
參數
deviceGroup:DRMDeviceGroup |
resetDRMVouchers | () | 方法 |
public function resetDRMVouchers():void
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.5, Flash Player 11.8 |
在 AIR 應用程式中,這會刪除所有本機快取的數位版權管理 (DRM) 憑證資料。對於瀏覽器類型應用程式,這只在 3322、3346、3323、3326 錯誤期間提供使用,並且使用方式類似受保護內容播放設定面板。
應用程式必須重新下載必要的憑證,使用者才能存取加密內容。呼叫此函數等同於呼叫 Netstream.resetDRMVouchers()
。
擲回值
IOError — 無法刪除憑證資料。
|
相關 API 元素
returnVoucher | () | 方法 |
public function returnVoucher(inServerURL:String, immediateCommit:Boolean, licenseID:String, policyID:String):void
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 11.8, AIR 3.8 |
將符合所有指定準則的所有憑證傳回給授權伺服器。憑證傳回時,就會從磁碟儲存空間及記憶體中移除。這不會中斷 Netstreams 和 AVStreams,這兩者目前將傳回的憑證用於視訊播放,但會禁止未來的播放。DRMManager 會發出 DRMReturnVoucherCompleteEvent 表示成功,或發出 DRMReturnVoucherErrorEvent 表示錯誤。如果 inServerURL 為 null,或者 licenseID 和 policyID 都是 null,將會擲回 ArgumentError。
參數
inServerURL:String — 從中下載傳回之授權的授權伺服器 URL。
| |
immediateCommit:Boolean — 保留。唯一支援的值為 true。
| |
licenseID:String — (選擇性) 將會傳回符合此 licenseID 的憑證。如果為 null,將會改用 policyID。
| |
policyID:String — (選擇性) 將會傳回符合此 policyID 的憑證。如果為 null,將會改用 licenseID。如果 licenseID 和 policyID 皆為非 null,將只會傳回同時符合 licenseID 和 policyID 的憑證。
|
setAuthenticationToken | () | 方法 |
public function setAuthenticationToken(serverUrl:String, domain:String, token:ByteArray):void
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.5, Flash Player 10.1 |
設定用來與指定之伺服器和網域通訊的驗證字符。
成功呼叫 authenticate()
方法之後,透過所傳送的 DRMAuthenticationCompleteEvent 物件存取其 token
屬性便能取得驗證字符。系統會自動為工作階段快取處理字符,但您亦可使用 setAuthenticationToken()
方法直接管理字符。
您所設定的字符將覆寫伺服器和網域現存已快取的任何字符。將 token
參數設為 null
可清除已快取的字符。
參數
serverUrl:String — 媒體權限伺服器的 URL
| |
domain:String — DRMContentData
| |
token:ByteArray — 驗證字符
|
storeVoucher | () | 方法 |
authenticationComplete | 事件 |
flash.events.DRMAuthenticationCompleteEvent
屬性 DRMAuthenticationCompleteEvent.type =
flash.events.DRMAuthenticationCompleteEvent.AUTHENTICATION_COMPLETE
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.5, Flash Player 10.1 |
呼叫 authenticate()
方法之後,如果使用者通過媒體權限伺服器驗證,DRMManager 就會傳送 DRMAuthenticationCompleteEvent 物件。
authenticationError | 事件 |
flash.events.DRMAuthenticationErrorEvent
屬性 DRMAuthenticationErrorEvent.type =
flash.events.DRMAuthenticationErrorEvent.AUTHENTICATION_ERROR
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.5, Flash Player 10.1 |
呼叫 authenticate()
方法之後,如果使用者未通過媒體權限伺服器驗證,DRMManager 就會傳送 DRMAuthenticationErrorEvent 物件。
drmError | 事件 |
flash.events.DRMErrorEvent
屬性 DRMErrorEvent.type =
flash.events.DRMErrorEvent.DRM_ERROR
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.5, Flash Player 10.1 |
無法從媒體權限伺服器取得要求的憑證時,DRMManager 就會傳送 DRMErrorEvent 物件。
注意:嘗試從本機憑證快取載入憑證 (使用 localOnly
作為 source
參數) 失敗時,不會傳送 DRMErrorEvent 物件。不過,系統會傳送 voucher
屬性設定為 null
的 DRMStatusEvent 物件。
DRMErrorEvent.DRM_ERROR
常數會定義 drmError
事件物件的 type
屬性值。
這個事件具有下列屬性:
屬性 | 值 |
---|---|
bubbles | false |
cancelable | false ;沒有要取消的預設行為指令。 |
errorID | 指定給此問題的數值錯誤碼。 |
subErrorID | 錯誤碼,指出根本問題的詳細相關資訊。 |
target | NetStream 物件。 |
drmStatus | 事件 |
flash.events.DRMStatusEvent
屬性 DRMStatusEvent.type =
flash.events.DRMStatusEvent.DRM_STATUS
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.5, Flash Player 10.1 |
從媒體權限伺服器取得要求的憑證時,DRMManager 就會傳送 DRMStatusEvent 物件。
DRMStatusEvent.DRM_STATUS
常數會定義 drmStatus
事件物件的 type
屬性值。
這個事件具有下列屬性:
屬性 | 值 |
---|---|
bubbles | false |
cancelable | false ;沒有要取消的預設行為指令。 |
detail | 用來說明狀態事件內容的字串 |
isAnonymous | 指出使用者是否能存取受保護 (利用 DRM 加密) 的內容,而不需提供驗證憑證。 |
isAvailableOffline | 指出受保護 (利用 DRM 加密) 的內容是否可供離線檢視。 |
offlineLeasePeriod | 內容可供離線檢視的剩餘天數。 |
policies | DRM 狀態事件的自訂物件。 |
target | NetStream 物件。 |
voucherEndDate | 憑證到期的絕對日期,此時使用者將無法繼續檢視其內容。 |
contentData | 內容的 DRMContentData |
voucher | 內容的 DRMVoucher 物件。 |
isLocal | 指出內容是否儲存在本機檔案系統上 |
Tue Jun 12 2018, 03:47 PM Z