MediaCodec.CryptoInfo 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
描述加密输入示例结构的元数据。
[Android.Runtime.Register("android/media/MediaCodec$CryptoInfo", DoNotGenerateAcw=true)]
public sealed class MediaCodec.CryptoInfo : Java.Lang.Object
[<Android.Runtime.Register("android/media/MediaCodec$CryptoInfo", DoNotGenerateAcw=true)>]
type MediaCodec.CryptoInfo = class
inherit Object
- 继承
- 属性
注解
描述加密输入示例结构的元数据。
缓冲区的数据被视为分区为“subSamples”。 每个子示例首先运行一个未加密的普通字节,然后运行一个加密字节。 其中任一运行可能为空。 如果模式加密适用,则根据“加密”和“跳过”块的重复模式,仅对每个加密运行进行部分加密。 #numBytesOfClearData
可以为 null 以指示所有数据已加密, #numBytesOfEncryptedData
可以为 null 表示所有数据已清除。 和 中的#numBytesOfClearData
#numBytesOfEncryptedData
至少一个必须是非 null。
此信息封装每个样本的元数据,如 ISO/IEC FDIS 23001-7:2016“ISO 基媒体文件格式文件中的常见加密”中所述。
<h3>ISO-CENC 方案</h3> ISO/IEC FDIS 23001-7:2016 定义了四种可能的方案,通过这些方案可以加密媒体,对应于存在或不存在模式加密的 AES 模式的每种可能组合。
<table style=“width: 0%”><thead><tr><th> </th><>aES-CTR</th<>th>AES-CBC</th<>/tr></thead<>tbody<>tr<>th>Without Patterns</th><td>cenc</td><td>cbc1</td<>/tr><><th>With Patterns</th><td>cens</td><td>cbcs</td<>/tr<>/tbody></table>
对于 CryptoInfo
,方案是通过字段和用 #setPattern
设置的值的组合#mode
隐式选择的。 对于模式,将模式设置为所有零 (即 blocksToEncrypt
和 blocksToSkip
均为零,) 将被解释为完全关闭模式。 将选择不使用模式的方案,即 cenc 或 cbc1。 将模式设置为任何非零值将选择模式支持方案之一、cens 或 cbcs。 如果 #setPattern
从不调用 ,则默认模式为全零。
<h4>HLS SAMPLE-AES Audio</h4> HLS SAMPLE-AES 音频以与 cbcs 方案兼容的方式加密,但不使用模式加密。 但是,如果使用 #setPattern
将模式设置为所有零,则会将其解释为选择 cbc1 方案。 由于处理 IV 的方式存在差异,cbc1 方案无法成功解密 HLS SAMPLE-AES 音频。 因此,建议将加密块和0
跳过块模式1
与 HLS SAMPLE-AES 音频一起使用。 这将触发解密以使用 cbcs 模式,同时仍解密每个块。
的 android.media.MediaCodec.CryptoInfo
Java 文档。
此页面的部分内容是基于 创建和共享的工作进行的修改,并根据 署名许可中所述的术语使用。
构造函数
MediaCodec.CryptoInfo() |
属性
Class |
返回此 |
Handle |
基础 Android 实例的句柄。 (继承自 Object) |
Iv |
16 字节初始化向量 |
JniIdentityHashCode |
描述加密输入示例结构的元数据。 (继承自 Object) |
JniPeerMembers |
描述加密输入示例结构的元数据。 |
Key |
16 字节密钥 ID |
Mode |
已应用的加密类型,请参阅 |
NumBytesOfClearData |
每个子示例中的前导未加密字节数。 |
NumBytesOfEncryptedData |
每个子示例中的尾随加密字节数。 |
NumSubSamples |
构成缓冲区内容的子示例数。 |
PeerReference |
描述加密输入示例结构的元数据。 (继承自 Object) |
ThresholdClass |
此 API 支持 Mono for Android 基础结构,不应直接从代码使用。 (继承自 Object) |
ThresholdType |
此 API 支持 Mono for Android 基础结构,不应直接从代码使用。 (继承自 Object) |
方法
Clone() |
创建并返回此对象的副本。 (继承自 Object) |
Dispose() |
描述加密输入示例结构的元数据。 (继承自 Object) |
Dispose(Boolean) |
描述加密输入示例结构的元数据。 (继承自 Object) |
Equals(Object) |
指示其他某个对象是否“等于”此对象。 (继承自 Object) |
GetHashCode() |
返回对象的哈希代码值。 (继承自 Object) |
GetPattern() |
描述加密输入示例结构的元数据。 |
JavaFinalize() |
当垃圾回收确定不再引用对象时,由对象上的垃圾回收器调用。 (继承自 Object) |
Notify() |
唤醒正在等待此对象的监视器的单个线程。 (继承自 Object) |
NotifyAll() |
唤醒正在等待此对象的监视器的所有线程。 (继承自 Object) |
Set(Int32, Int32[], Int32[], Byte[], Byte[], MediaCodecCryptoMode) |
设置实例的子采样计数、清除/加密大小、密钥、IV 和模式字段 |
SetHandle(IntPtr, JniHandleOwnership) |
设置 Handle 属性。 (继承自 Object) |
SetPattern(MediaCodec+CryptoInfo+Pattern) |
描述加密输入示例结构的元数据。 |
ToArray<T>() |
描述加密输入示例结构的元数据。 (继承自 Object) |
ToString() |
返回对象的字符串表示形式。 (继承自 Object) |
UnregisterFromRuntime() |
描述加密输入示例结构的元数据。 (继承自 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() |
描述加密输入示例结构的元数据。 (继承自 Object) |
IJavaPeerable.DisposeUnlessReferenced() |
描述加密输入示例结构的元数据。 (继承自 Object) |
IJavaPeerable.Finalized() |
描述加密输入示例结构的元数据。 (继承自 Object) |
IJavaPeerable.JniManagedPeerState |
描述加密输入示例结构的元数据。 (继承自 Object) |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
描述加密输入示例结构的元数据。 (继承自 Object) |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
描述加密输入示例结构的元数据。 (继承自 Object) |
IJavaPeerable.SetPeerReference(JniObjectReference) |
描述加密输入示例结构的元数据。 (继承自 Object) |
扩展方法
JavaCast<TResult>(IJavaObject) |
执行 Android 运行时检查的类型转换。 |
JavaCast<TResult>(IJavaObject) |
描述加密输入示例结构的元数据。 |
GetJniTypeName(IJavaPeerable) |
描述加密输入示例结构的元数据。 |