MediaCodec.CryptoInfo 类

定义

描述加密输入示例结构的元数据。

[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
继承
MediaCodec.CryptoInfo
属性

注解

描述加密输入示例结构的元数据。

缓冲区的数据被视为分区为“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隐式选择的。 对于模式,将模式设置为所有零 (即 blocksToEncryptblocksToSkip 均为零,) 将被解释为完全关闭模式。 将选择不使用模式的方案,即 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.CryptoInfoJava 文档。

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

构造函数

MediaCodec.CryptoInfo()

属性

Class

返回此 Object的运行时类。

(继承自 Object)
Handle

基础 Android 实例的句柄。

(继承自 Object)
Iv

16 字节初始化向量

JniIdentityHashCode

描述加密输入示例结构的元数据。

(继承自 Object)
JniPeerMembers

描述加密输入示例结构的元数据。

Key

16 字节密钥 ID

Mode

已应用的加密类型,请参阅 #CRYPTO_MODE_UNENCRYPTED#CRYPTO_MODE_AES_CTR#CRYPTO_MODE_AES_CBC

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 和模式字段 MediaCodec.CryptoInfo

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)

描述加密输入示例结构的元数据。

适用于