MediaCas 类

定义

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
属性
实现

注解

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 与会话关联,然后,可以使用 descrambler 来反汇编使用会话密钥保护的内容,无论是在提取期间,还是在解码 android.media.MediaCodec过程中。

如果应用使用自己的提取程序处理示例提取,则可以使用 MediaDescrambler 将样本解构到清除缓冲区(如果会话的许可证不需要安全解码器),或者反汇编少量数据以检索下游管道处理示例所需的信息(如果会话的许可证需要安全解码器)。

如果会话需要安全解码器,则需要向 MediaCodec 提供 MediaDescrambler,以便对排队的 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.MediaCasJava 文档

本页的某些部分是根据 Android 开放源代码项目创建和共享的工作进行的修改,并根据 Creative Commons 2.5 属性许可证中所述的术语使用。

构造函数

MediaCas(Context, Int32, String, Int32)

实例化指定系统 ID 的 CA 系统。

MediaCas(Context, Int32, String, Int32, Handler, MediaCas+IEventListener)

实例化指定系统 ID 的 CA 系统。

MediaCas(Int32)

实例化指定系统 ID 的 CA 系统。

字段

PluginStatusPhysicalModuleChanged
已过时.

指示通过删除或插入物理 CAS 模块来更改 CAS 系统状态的事件。

PluginStatusSessionNumberChanged
已过时.

指示 CAS 系统的会话数已更改的事件。

ScramblingModeAes128
已过时.

高级加密系统 (AES) 128 位加密模式。

ScramblingModeAesCbc
已过时.

高级加密系统 (AES) 密码块链 (CBC) 模式。

ScramblingModeAesEcb
已过时.

高级加密系统(AES)电子代码簿(ECB)模式。

ScramblingModeAesScte52
已过时.

电缆电信工程师协会(AES)高级加密系统(AES)52 模式。

ScramblingModeDvbCissaV1
已过时.

DVB 通用 IPTV 软件导向 Scrambling 算法 (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
已过时.

电缆电信工程师协会的三重数据加密算法(TDES)52 模式。

SessionUsageLive
已过时.

Cas 会话用于反序列化实时流。

SessionUsagePlayback
已过时.

Cas 会话用于反序列化重新记录的流。

SessionUsageRecord
已过时.

Cas 会话用于解构实时流并加密本地录制的内容

SessionUsageTimeshift
已过时.

Cas 会话用于反序列化实时流、加密本地录制的内容和播放本地加密内容。

属性

Class

返回此 Object的运行时类。

(继承自 Object)
Handle

基础 Android 实例的句柄。

(继承自 Object)
JniIdentityHashCode

MediaCas 可用于与 一起 android.media.MediaDescrambler获取用于取消争用受保护媒体流的密钥。

(继承自 Object)
JniPeerMembers

MediaCas 可用于与 一起 android.media.MediaDescrambler获取用于取消争用受保护媒体流的密钥。

PeerReference

MediaCas 可用于与 一起 android.media.MediaDescrambler获取用于取消争用受保护媒体流的密钥。

(继承自 Object)
ThresholdClass

此 API 支持 Mono for Android 基础结构,不打算直接从代码使用。

(继承自 Object)
ThresholdType

此 API 支持 Mono for Android 基础结构,不打算直接从代码使用。

(继承自 Object)

方法

Clone()

创建并返回此对象的副本。

(继承自 Object)
Close()

MediaCas 可用于与 一起 android.media.MediaDescrambler获取用于取消争用受保护媒体流的密钥。

Dispose()

MediaCas 可用于与 一起 android.media.MediaDescrambler获取用于取消争用受保护媒体流的密钥。

(继承自 Object)
Dispose(Boolean)

MediaCas 可用于与 一起 android.media.MediaDescrambler获取用于取消争用受保护媒体流的密钥。

(继承自 Object)
EnumeratePlugins()

列出设备上的所有可用 CA 插件。

Equals(Object)

指示其他对象是否“等于”此对象。

(继承自 Object)
GetHashCode()

返回对象的哈希代码值。

(继承自 Object)
IsSystemIdSupported(Int32)

查询此设备上是否支持特定 CA 系统。

JavaFinalize()

当垃圾回收确定不再引用该对象时,由对象上的垃圾回收器调用。

(继承自 Object)
Notify()

唤醒正在等待此对象的监视器的单个线程。

(继承自 Object)
NotifyAll()

唤醒正在等待此对象的监视器的所有线程。

(继承自 Object)
OpenSession()

打开会话以对条件访问系统争用的一个或多个流进行反汇编。

OpenSession(Int32, Int32)

打开会话以对条件访问系统争用的一个或多个流进行反汇编。

ProcessEmm(Byte[])

将收到的 EMM 数据包发送到 CA 系统。

ProcessEmm(Byte[], Int32, Int32)

将收到的 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 可用于与 一起 android.media.MediaDescrambler获取用于取消争用受保护媒体流的密钥。

(继承自 Object)
ToString()

返回对象的字符串表示形式。

(继承自 Object)
UnregisterFromRuntime()

MediaCas 可用于与 一起 android.media.MediaDescrambler获取用于取消争用受保护媒体流的密钥。

(继承自 Object)
Wait()

使当前线程等待,直到唤醒它,通常是通过 em 通知/em> 或 <em>interrupted</em>。<><

(继承自 Object)
Wait(Int64)

使当前线程等待直到唤醒,通常是通过 <em>通知</em> 或 <em interrupted</em>>,或直到经过一定数量的实时。

(继承自 Object)
Wait(Int64, Int32)

使当前线程等待直到唤醒,通常是通过 <em>通知</em> 或 <em interrupted</em>>,或直到经过一定数量的实时。

(继承自 Object)

显式接口实现

IJavaPeerable.Disposed()

MediaCas 可用于与 一起 android.media.MediaDescrambler获取用于取消争用受保护媒体流的密钥。

(继承自 Object)
IJavaPeerable.DisposeUnlessReferenced()

MediaCas 可用于与 一起 android.media.MediaDescrambler获取用于取消争用受保护媒体流的密钥。

(继承自 Object)
IJavaPeerable.Finalized()

MediaCas 可用于与 一起 android.media.MediaDescrambler获取用于取消争用受保护媒体流的密钥。

(继承自 Object)
IJavaPeerable.JniManagedPeerState

MediaCas 可用于与 一起 android.media.MediaDescrambler获取用于取消争用受保护媒体流的密钥。

(继承自 Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

MediaCas 可用于与 一起 android.media.MediaDescrambler获取用于取消争用受保护媒体流的密钥。

(继承自 Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

MediaCas 可用于与 一起 android.media.MediaDescrambler获取用于取消争用受保护媒体流的密钥。

(继承自 Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

MediaCas 可用于与 一起 android.media.MediaDescrambler获取用于取消争用受保护媒体流的密钥。

(继承自 Object)

扩展方法

JavaCast<TResult>(IJavaObject)

执行 Android 运行时检查的类型转换。

JavaCast<TResult>(IJavaObject)

MediaCas 可用于与 一起 android.media.MediaDescrambler获取用于取消争用受保护媒体流的密钥。

GetJniTypeName(IJavaPeerable)

MediaCas 可用于与 一起 android.media.MediaDescrambler获取用于取消争用受保护媒体流的密钥。

适用于