MediaCas 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
MediaCas 可用來取得索引鍵,以搭配 android.media.MediaDescrambler
來取消分割受保護的媒體串流。
[Android.Runtime.Register("android/media/MediaCas", ApiSince=26, DoNotGenerateAcw=true)]
public sealed class MediaCas : Java.Lang.Object, IDisposable, Java.Interop.IJavaPeerable, Java.Lang.IAutoCloseable
[<Android.Runtime.Register("android/media/MediaCas", ApiSince=26, DoNotGenerateAcw=true)>]
type MediaCas = class
inherit Object
interface IAutoCloseable
interface IJavaObject
interface IDisposable
interface IJavaPeerable
- 繼承
- 屬性
- 實作
備註
MediaCas 可用來取得索引鍵,以搭配 android.media.MediaDescrambler
來取消分割受保護的媒體串流。 MediaCas API 的設計目的是支持條件式存取,例如 ISO/IEC13818-1 中的條件式存取。 CA 系統是由16位整數CA_system_id來識別。 爭先恐後演算法通常是專屬的,並由裝置上安裝的廠商特定 CA 外掛程式實作。
應用程式負責建構它想要使用的 CA 系統的 MediaCas 物件。 應用程式可以使用靜態方法來 #isSystemIdSupported
查詢特定 CA 系統是否支援 。 它也可以使用靜態方法來 #enumeratePlugins
取得支援的 CA 系統完整清單。
建構 MediaCas 物件之後,應用程式應該使用 方法和 #provision
/或 #processEmm
來正確布建它。 EMM(權利管理訊息)可以分散在頻外,或具有數據流的頻內。
為了解構基本數據流,應用程式會先呼叫 #openSession
以產生可唯一 Session
識別會話的物件。 會話會提供後續金鑰更新和解構活動的內容。 ECM(權利控制訊息)會透過方法 Session#processEcm
傳送至會話。
應用程式接著會建構 MediaDescrambler 物件,並使用 以會話 MediaDescrambler#setMediaCasSession
初始化它。 這會將解構函式系結至會話,然後可以使用 descrambler 來解構使用會話密鑰保護的內容,或在使用 android.media.MediaCodec
譯碼期間。
如果應用程式使用自己的擷取器處理範例擷取,則可以使用 MediaDescrambler 將樣本解譯成清除緩衝區(如果會話的授權不需要安全譯碼器),或解構少量數據以擷取下游管線處理樣本所需的資訊(如果會話的授權需要安全譯碼器)。
如果會話需要安全譯碼器,則必須將 MediaDescrambler 提供給 MediaCodec,以將佇列佇列的 MediaCodec#queueSecureInputBuffer
範例還原成受保護的緩衝區。 應用程式應該使用 MediaCodec#configure(MediaFormat, android.view.Surface, int, MediaDescrambler)
,而不是一般 MediaCodec#configure(MediaFormat, android.view.Surface, MediaCrypto, int)
方法來設定 MediaCodec。
<h3>使用 Android 的 MediaExtractor</h3>
如果應用程式使用 MediaExtractor
,它可以藉由呼叫 MediaExtractor#setMediaCas
,將 CAS 工作階段管理委派給 MediaExtractor。 MediaExtractor 會接手並呼叫 #openSession
、 #processEmm
和/或 Session#processEcm
等。 如有必要。
使用 MediaExtractor
時,如果授權需要安全譯碼器,應用程式仍然需要 MediaDescrambler 搭配 MediaCodec
使用。 您可以藉由呼叫 MediaExtractor#getCasInfo
來擷取與追蹤之解構函式相關聯的會話,並用來初始化 MediaCodec 的 MediaDescrambler 物件。
<h3>接聽程式</h3>
應用程式可能會註冊接聽程式,以使用 方法 #setEventListener
從 CA 系統接收事件。 事件的確切格式為配置特定,且未由此 API 指定。
的 android.media.MediaCas
Java 檔。
此頁面的部分是根據 Android 開放原始碼專案所建立和共用的工作進行修改,並根據 Creative Commons 2.5 屬性授權中所述的詞彙使用。
建構函式
MediaCas(Context, Int32, String, Int32, Handler, MediaCas+IEventListener) |
具現化指定系統識別碼的 CA 系統。 |
MediaCas(Context, Int32, String, Int32) |
具現化指定系統識別碼的 CA 系統。 |
MediaCas(Int32) |
具現化指定系統識別碼的 CA 系統。 |
欄位
PluginStatusPhysicalModuleChanged |
已淘汰.
事件,表示 CAS 系統的狀態會藉由移除或插入實體 CAS 模組而變更。 |
PluginStatusSessionNumberChanged |
已淘汰.
要指出 CAS 系統會話數目已變更的事件。 |
ScramblingModeAes128 |
已淘汰.
進階加密系統 (AES) 128 位加密模式。 |
ScramblingModeAesCbc |
已淘汰.
進階加密系統 (AES) 加密區塊鏈結 (CBC) 模式。 |
ScramblingModeAesEcb |
已淘汰.
進階加密系統(AES)電子代碼簿(ECB)模式。 |
ScramblingModeAesScte52 |
已淘汰.
先進的加密系統(AES)電纜電信工程師協會(SCTE)52模式。 |
ScramblingModeDvbCissaV1 |
已淘汰.
DVB 通用 IPTV 軟體導向的爭用演算法 (CISSA) 第 1 版。 |
ScramblingModeDvbCsa1 |
已淘汰.
DVB (數字視頻廣播) 常見的爭鬥演算法 (CSA) 1。 |
ScramblingModeDvbCsa2 |
已淘汰.
DVB CSA 2。 |
ScramblingModeDvbCsa3Enhance |
已淘汰.
完全增強模式中的 DVB CSA 3。 |
ScramblingModeDvbCsa3Minimal |
已淘汰.
DVB CSA 3 在最低增強模式中。 |
ScramblingModeDvbCsa3Standard |
已淘汰.
標準模式中的 DVB CSA 3。 |
ScramblingModeDvbIdsa |
已淘汰.
ATIS-0800006 IIF 預設爭吵演算法 (IDSA) 。 |
ScramblingModeMulti2 |
已淘汰.
對稱金鑰演演算法。 |
ScramblingModeReserved |
已淘汰.
DVB (數位視頻廣播) 保留模式。 |
ScramblingModeTdesEcb |
已淘汰.
三重數據加密演算法 (TDES) 電子代碼簿 (ECB) 模式。 |
ScramblingModeTdesScte52 |
已淘汰.
電纜電信工程師(SCTE)52 模式的三重數據加密演算法(TDES)協會。 |
SessionUsageLive |
已淘汰.
Cas 會話可用來解構即時串流。 |
SessionUsagePlayback |
已淘汰.
Cas 會話是用來解構重新錄製的數據流。 |
SessionUsageRecord |
已淘汰.
Cas 會話可用來解構即時串流,並加密本機錄製的內容 |
SessionUsageTimeshift |
已淘汰.
Cas 會話可用來解構即時串流、加密本機錄製的內容,以及播放本機加密的內容。 |
屬性
Class |
傳回這個 |
Handle |
基礎Android實例的句柄。 (繼承來源 Object) |
JniIdentityHashCode |
MediaCas 可用來取得索引鍵,以搭配 |
JniPeerMembers |
MediaCas 可用來取得索引鍵,以搭配 |
PeerReference |
MediaCas 可用來取得索引鍵,以搭配 |
ThresholdClass |
此 API 支援適用於 Android 的 Mono 基礎結構,並不適合直接從您的程式代碼使用。 (繼承來源 Object) |
ThresholdType |
此 API 支援適用於 Android 的 Mono 基礎結構,並不適合直接從您的程式代碼使用。 (繼承來源 Object) |
方法
Clone() |
建立並傳回這個 對象的複本。 (繼承來源 Object) |
Close() |
MediaCas 可用來取得索引鍵,以搭配 |
Dispose() |
MediaCas 可用來取得索引鍵,以搭配 |
Dispose(Boolean) |
MediaCas 可用來取得索引鍵,以搭配 |
EnumeratePlugins() |
列出裝置上所有可用的 CA 外掛程式。 |
Equals(Object) |
指出其他物件是否「等於」這個物件。 (繼承來源 Object) |
GetHashCode() |
傳回此物件的雜湊碼值。 (繼承來源 Object) |
IsSystemIdSupported(Int32) |
查詢此裝置是否支援特定 CA 系統。 |
JavaFinalize() |
當垃圾收集決定不再參考物件時,垃圾收集行程在 物件上呼叫。 (繼承來源 Object) |
Notify() |
喚醒正在等候此物件監視器的單一線程。 (繼承來源 Object) |
NotifyAll() |
喚醒正在等候此物件監視器的所有線程。 (繼承來源 Object) |
OpenSession() |
開啟會話,以解構條件式存取系統所爭用的一或多個數據流。 |
OpenSession(Int32, Int32) |
開啟會話,以解構條件式存取系統所爭用的一或多個數據流。 |
ProcessEmm(Byte[], Int32, Int32) |
將接收的 EMM 封包傳送至 CA 系統。 |
ProcessEmm(Byte[]) |
將接收的 EMM 封包傳送至 CA 系統。 |
Provision(String) |
起始 CA 系統的佈建作業。 |
RefreshEntitlements(Int32, Byte[]) |
通知 CA 系統重新整理權利金鑰。 |
SendEvent(Int32, Int32, Byte[]) |
將事件傳送至 CA 系統。 |
SetEventListener(MediaCas+IEventListener, Handler) |
設定事件接聽程式以接收來自 MediaCas 實例的通知。 |
SetHandle(IntPtr, JniHandleOwnership) |
設定 Handle 屬性。 (繼承來源 Object) |
SetPrivateData(Byte[]) |
傳送 CA 系統的私用數據。 |
ToArray<T>() |
MediaCas 可用來取得索引鍵,以搭配 |
ToString() |
傳回物件的字串表示。 (繼承來源 Object) |
UnregisterFromRuntime() |
MediaCas 可用來取得索引鍵,以搭配 |
Wait() |
讓目前線程等候直到喚醒為止,通常是藉由em <notified/em>或<em>interrupted</em> 來喚醒它。<> (繼承來源 Object) |
Wait(Int64, Int32) |
讓目前的線程等到喚醒為止,通常是因為 <em>notified</em> 或 <em>interrupted</em>,或直到經過一定數量的實時為止。 (繼承來源 Object) |
Wait(Int64) |
讓目前的線程等到喚醒為止,通常是因為 <em>notified</em> 或 <em>interrupted</em>,或直到經過一定數量的實時為止。 (繼承來源 Object) |
明確介面實作
IJavaPeerable.Disposed() |
MediaCas 可用來取得索引鍵,以搭配 |
IJavaPeerable.DisposeUnlessReferenced() |
MediaCas 可用來取得索引鍵,以搭配 |
IJavaPeerable.Finalized() |
MediaCas 可用來取得索引鍵,以搭配 |
IJavaPeerable.JniManagedPeerState |
MediaCas 可用來取得索引鍵,以搭配 |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
MediaCas 可用來取得索引鍵,以搭配 |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
MediaCas 可用來取得索引鍵,以搭配 |
IJavaPeerable.SetPeerReference(JniObjectReference) |
MediaCas 可用來取得索引鍵,以搭配 |
擴充方法
JavaCast<TResult>(IJavaObject) |
執行 Android 執行時間檢查的類型轉換。 |
JavaCast<TResult>(IJavaObject) |
MediaCas 可用來取得索引鍵,以搭配 |
GetJniTypeName(IJavaPeerable) |
MediaCas 可用來取得索引鍵,以搭配 |