Most visited

Recently visited

Added in API level 16

MediaCrypto

public final class MediaCrypto
extends Object

java.lang.Object
   ↳ android.media.MediaCrypto


MediaCrypto类可以与MediaCodec一起使用来解码加密的媒体数据。 加密方案被分配16个字节的UUID,方法isCryptoSchemeSupported(UUID)可用于查询设备是否支持给定的方案。

Summary

Public constructors

MediaCrypto(UUID uuid, byte[] initData)

使用不透明的加密方案特定数据实例化MediaCrypto对象。

Public methods

static final boolean isCryptoSchemeSupported(UUID uuid)

查询此设备是否支持由其UUID标识的给定方案。

final void release()
final boolean requiresSecureDecoderComponent(String mime)

查询加密方案是否需要使用安全解码器来解码给定MIME类型的数据。

final void setMediaDrmSession(byte[] sessionId)

将MediaDrm会话与此MediaCrypto实例相关联。

Protected methods

void finalize()

当垃圾收集确定没有更多对该对象的引用时,由对象上的垃圾回收器调用。

Inherited methods

From class java.lang.Object

Public constructors

MediaCrypto

Added in API level 16
MediaCrypto (UUID uuid, 
                byte[] initData)

使用不透明的加密方案特定数据实例化MediaCrypto对象。

Parameters
uuid UUID: The UUID of the crypto scheme.
initData byte: Opaque initialization data specific to the crypto scheme.
Throws
MediaCryptoException

Public methods

isCryptoSchemeSupported

Added in API level 16
boolean isCryptoSchemeSupported (UUID uuid)

查询此设备是否支持由其UUID标识的给定方案。

Parameters
uuid UUID: The UUID of the crypto scheme.
Returns
boolean

release

Added in API level 16
void release ()

requiresSecureDecoderComponent

Added in API level 16
boolean requiresSecureDecoderComponent (String mime)

查询加密方案是否需要使用安全解码器来解码给定MIME类型的数据。

Parameters
mime String: The mime type of the media data
Returns
boolean

setMediaDrmSession

Added in API level 23
void setMediaDrmSession (byte[] sessionId)

将MediaDrm会话与此MediaCrypto实例相关联。 MediaDrm会话用于安全加载加密方案的解密密钥。 通过在key字段中指定其密钥ID,可以选择通过MediaDrm会话加载的加密密钥在由queueSecureInputBuffer(int, int, MediaCodec.CryptoInfo, long, int)执行的解密操作期间使用。

Parameters
sessionId byte: the MediaDrm sessionId to associate with this MediaCrypto instance
Throws
MediaCryptoException on failure to set the sessionId

Protected methods

finalize

Added in API level 16
void finalize ()

当垃圾收集确定没有更多对该对象的引用时,由对象上的垃圾回收器调用。 一个子类覆盖了finalize方法来处置系统资源或执行其他清理。

的常规协定finalize是,它被调用,如果当在Java TM虚拟机已确定不再有由该目的可以通过还没有死亡,除了作为一个动作的结果的任何线程访问的任何手段取决于某些其他可以完成的对象或类别的最终定稿。 方法finalize可以采取任何行动,包括使这个对象再次可用于其他线程; 然而, finalize的通常目的是在对象被不可撤销地丢弃之前执行清理操作。 例如,表示输入/输出连接的对象的finalize方法可能会执行显式I / O事务,以在永久丢弃该对象之前中断连接。

finalize方法Object执行特殊的操作; 它只是正常返回。 Object子类可能会覆盖此定义。

Java编程语言不保证哪个线程将为任何给定对象调用finalize方法。 但是,保证调用finalize的线程在调用finalize时不会保留任何用户可见的同步锁。 如果finalize方法引发未捕获的异常,则忽略该异常,并终止该对象的终止。

在为对象调用 finalize方法之后,在Java虚拟机再次确定不再有任何方法可以通过尚未死亡的任何线程访问此对象,包括可能的操作通过准备完成的其他对象或类别,此时该对象可能被丢弃。

对于任何给定的对象,Java虚拟机从不会多次调用 finalize方法。

finalize方法抛出的任何异常 finalize导致终止此对象的终止,但会被忽略。

Hooray!