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 与会话关联,然后,可以使用 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.MediaCas
Java 文档
本页的某些部分是根据 Android 开放源代码项目创建和共享的工作进行的修改,并根据 Creative Commons 2.5 属性许可证中所述的术语使用。
构造函数
MediaCas(Context, Int32, String, Int32, Handler, MediaCas+IEventListener) |
实例化指定系统 ID 的 CA 系统。 |
MediaCas(Context, Int32, String, Int32) |
实例化指定系统 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 |
返回此 |
Handle |
基础 Android 实例的句柄。 (继承自 Object) |
JniIdentityHashCode |
MediaCas 可用于与 一起 |
JniPeerMembers |
MediaCas 可用于与 一起 |
PeerReference |
MediaCas 可用于与 一起 |
ThresholdClass |
此 API 支持 Mono for Android 基础结构,不打算直接从代码使用。 (继承自 Object) |
ThresholdType |
此 API 支持 Mono for Android 基础结构,不打算直接从代码使用。 (继承自 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 通知/em> 或 <em>interrupted</em>。<>< (继承自 Object) |
Wait(Int64, Int32) |
使当前线程等待直到唤醒,通常是通过 <em>通知</em> 或 <em interrupted</em>>,或直到经过一定数量的实时。 (继承自 Object) |
Wait(Int64) |
使当前线程等待直到唤醒,通常是通过 <em>通知</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 可用于与 一起 |