Share via


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对其进行初始化。 这会将解乱器与会话相关联,然后可以使用解乱器来解构受会话密钥保护的内容,无论是在提取期间还是在使用 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 文档。

此页面的某些部分是基于 创建和共享的工作进行的修改,并根据 署名许可中所述的条款使用。

构造函数

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) 电子代码簿 (欧洲央行) 模式。

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
已过时.

三重数据加密算法 (TDES) 电缆电信工程师协会 (SCTE) 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一起对受保护的媒体流进行反乱处理。

适用于