@ohos.multimedia.drm (数字版权保护)

DRM(Digital Rights Management)框架组件支持音视频媒体业务数字版权管理功能的开发。开发者可以调用系统提供的DRM插件,完成以下功能:

  • DRM证书管理:生成证书请求、设置证书响应,实现对证书Provision(下载)功能。
  • DRM许可证管理:生成许可证请求、设置许可证响应,实现对许可证的离线管理等功能。
  • DRM节目授权:支持底层DRM插件根据许可证对DRM节目授权。
  • DRM节目解密:支持媒体播放功能的解密调用,实现对DRM节目的解密和播放。

说明: 本模块首批接口从API version 11开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。

导入模块

import drm from '@ohos.multimedia.drm';

DrmErrorCode

枚举,错误码。

系统能力: SystemCapability.Multimedia.Drm.Core

名称 说明
ERROR_UNKNOWN 24700101 未知错误
MAX_SYSTEM_NUM_REACHED 24700103 MediaKeySystem实例数量达到64
MAX_SESSION_NUM_REACHED 24700104 MediaKeySession实例数量达到64
SERVICE_FATAL_ERROR 24700201 IPC服务错误

PreDefinedConfigName

枚举,配置选项名。

系统能力: SystemCapability.Multimedia.Drm.Core

名称 说明
CONFIG_DEVICE_VENDOR 'vendor' 插件名
CONFIG_DEVICE_VERSION 'version' 插件版本号
CONFIG_DEVICE_DESCRIPTION 'description' 设备描述符
CONFIG_DEVICE_ALGORITHMS 'algorithms' 算法名
CONFIG_DEVICE_UNIQUE_ID 'deviceUniqueId' 设备唯一编号
CONFIG_SESSION_MAX 'maxSessionNum' 设备支持的最大会话数
CONFIG_SESSION_CURRENT 'currentSessionNum' 当前会话数量

MediaKeyType

枚举,许可证类型。

系统能力: SystemCapability.Multimedia.Drm.Core

名称 说明
MEDIA_KEY_TYPE_OFFLINE 0 离线
MEDIA_KEY_TYPE_ONLINE 1 在线

OfflineMediaKeyStatus

枚举,离线许可证状态。

系统能力: SystemCapability.Multimedia.Drm.Core

名称 说明
OFFLINE_MEDIA_KEY_STATUS_UNKNOWN 0 未知状态
OFFLINE_MEDIA_KEY_STATUS_USABLE 1 可用状态
OFFLINE_MEDIA_KEY_STATUS_INACTIVE 2 失活状态

CertificateStatus

枚举,证书状态。

系统能力: SystemCapability.Multimedia.Drm.Core

名称 说明
CERT_STATUS_PROVISIONED 0 设备已安装设备证书
CERT_STATUS_NOT_PROVISIONED 1 设备未安装设备证书
CERT_STATUS_EXPIRED 2 设备证书过期
CERT_STATUS_INVALID 3 设备证书无效
CERT_STATUS_UNAVAILABLE 4 设备证书不可用

MediaKeyRequestType

枚举,请求类型。

系统能力: SystemCapability.Multimedia.Drm.Core

名称 说明
MEDIA_KEY_REQUEST_TYPE_UNKNOWN 0 未知请求类型
MEDIA_KEY_REQUEST_TYPE_INITIAL 1 初始化请求
MEDIA_KEY_REQUEST_TYPE_RENEWAL 2 续订请求
MEDIA_KEY_REQUEST_TYPE_RELEASE 3 释放请求
MEDIA_KEY_REQUEST_TYPE_NONE 4 无请求
MEDIA_KEY_REQUEST_TYPE_UPDATE 5 更新请求

ContentProtectionLevel

枚举,内容保护级别。

系统能力: SystemCapability.Multimedia.Drm.Core

名称 说明
CONTENT_PROTECTION_LEVEL_UNKNOWN 0 未知级别
CONTENT_PROTECTION_LEVEL_SW_CRYPTO 1 软件内容保护级别
CONTENT_PROTECTION_LEVEL_HW_CRYPTO 2 硬件内容保护级别
CONTENT_PROTECTION_LEVEL_ENHANCED_HW 3 硬件增强级别
CONTENT_PROTECTION_LEVEL_MAX 4 最高内容保护级别

ProvisionRequest

设备证书请求。

系统能力: SystemCapability.Multimedia.Drm.Core

名称 类型 必填 说明
data Uint8Array 设备证书请求数据
defaultURL string Provision服务器URL

OptionsData

设备证书请求的操作数据。

系统能力: SystemCapability.Multimedia.Drm.Core

名称 类型 必填 说明
name string 操作数据名
value string 操作数据值

MediaKeyRequest

许可证请求。

系统能力: SystemCapability.Multimedia.Drm.Core

名称 类型 必填 说明
mediaKeyRequestType MediaKeyRequestType 许可证请求类型
data Uint8Array 许可证请求数据
defaultURL string License服务器URL

EventInfo

事件类型。

系统能力: SystemCapability.Multimedia.Drm.Core

名称 类型 必填 说明
info Uint8Array 事件信息
extraInfo string 事件额外信息

StatisticKeyValue

统计信息。

系统能力: SystemCapability.Multimedia.Drm.Core

名称 类型 必填 说明
name string 统计信息名
value string 统计信息值

MediaKeyStatus

许可证状态

系统能力: SystemCapability.Multimedia.Drm.Core

名称 类型 必填 说明
name string 字符串类型许可证Id
value string 许可证状态值

KeysInfo

许可证信息

系统能力: SystemCapability.Multimedia.Drm.Core

名称 类型 必填 说明
keyId Uint8Array 字符数组类型许可证Id
value string 许可证状态值

MediaKeySystemInfo

指示媒体源的drm信息。

系统能力: SystemCapability.Multimedia.Drm.Core

名称 类型 必填 说明
uuid string 插件唯一标识码
pssh Uint8Array drm info内的保护方案特定标头

drm.createMediaKeySystem

createMediaKeySystem(name: string): MediaKeySystem

创建MediaKeySystem实例,同步返回结果。

系统能力: SystemCapability.Multimedia.Drm.Core

参数:

参数名 类型 必填 说明
name string 插件类型。

返回值:

类型 说明
MediaKeySystem MediaKeySystem实例。

错误码:

以下错误码的详细介绍请参见DRM错误码

错误码ID 错误信息
401 The parameter check failed. Possibly because: 1.Mandatory parameters are left unspecified. 2.Parameter verification failed.
24700101 All unknown errors
24700103 Meet max MediaKeySystem num limit
24700201 Service fatal error e.g. service died

示例:

import drm from '@ohos.multimedia.drm';
import { BusinessError } from '@ohos.base';
try {
  let mediaKeysystem: drm.MediaKeySystem = drm.createMediaKeySystem("com.clearplay.drm");
} catch (err) {
  let error = err as BusinessError;
  console.error(`createMediaKeySystem ERROR: ${error}`);  
}

drm.isMediaKeySystemSupported

isMediaKeySystemSupported(name: string): boolean

判断设备是否支持指定DRM类型的DRM方案。

系统能力: SystemCapability.Multimedia.Drm.Core

参数:

参数名 类型 必填 说明
name string 插件类型。

返回值:

类型 说明
[boolean] 返回设备是否支持指定DRM类型的DRM方案。

错误码:

以下错误码的详细介绍请参见DRM错误码

错误码ID 错误信息
401 The parameter check failed. Possibly because: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. 3.Parameter verification failed.
24700101 All unknown errors
24700201 Service fatal error e.g. service died

示例:

import drm from '@ohos.multimedia.drm';
import { BusinessError } from '@ohos.base';

try {
  let Supported = drm.isMediaKeySystemSupported("com.clearplay.drm");
} catch (err) {
  let error = err as BusinessError;
  console.error(`isMediaKeySystemSupported ERROR: ${error}`);  
}

drm.isMediaKeySystemSupported

isMediaKeySystemSupported(name: string, mimeType: string): boolean

判断设备是否支持指定DRM类型、媒体类型的DRM方案。

系统能力: SystemCapability.Multimedia.Drm.Core

参数:

参数名 类型 必填 说明
name string 插件类型。
mimeType string 媒体类型,支持的媒体类型由设备上的DRM方案决定。

返回值:

类型 说明
[boolean] 返回设备是否支持指定DRM类型、媒体类型的DRM方案。

错误码:

以下错误码的详细介绍请参见DRM错误码

错误码ID 错误信息
401 The parameter check failed. Possibly because: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. 3.Parameter verification failed.
24700101 All unknown errors
24700201 Service fatal error e.g. service died

示例:

import drm from '@ohos.multimedia.drm';
import { BusinessError } from '@ohos.base';

try {
  let Supported = drm.isMediaKeySystemSupported("com.clearplay.drm", "video/mp4");
} catch (err) {
  let error = err as BusinessError;
  console.error(`isMediaKeySystemSupported ERROR: ${error}`);
}

drm.isMediaKeySystemSupported

isMediaKeySystemSupported(name: string, mimeType: string, level: ContentProtectionLevel): boolean

判断设备是否支持指定DRM类型、媒体类型和内容保护级别的DRM方案。

系统能力: SystemCapability.Multimedia.Drm.Core

参数:

参数名 类型 必填 说明
name string 插件类型。
mimeType string 媒体类型,支持的媒体类型由设备上的DRM方案决定。
level ContentProtectionLevel 设备内容保护级别。

返回值:

类型 说明
[boolean] 返回设备是否支持指定DRM类型、媒体类型和内容保护级别的DRM方案。

错误码:

以下错误码的详细介绍请参见DRM错误码

错误码ID 错误信息
401 The parameter check failed. Possibly because: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. 3.Parameter verification failed, the param name's length is zero or too big(exceeds 4096 Bytes)
24700101 All unknown errors
24700201 Service fatal error e.g. service died

示例:

import drm from '@ohos.multimedia.drm';
import { BusinessError } from '@ohos.base';

try {
  let Supported = drm.isMediaKeySystemSupported("com.clearplay.drm", "video/mp4", drm.ContentProtectionLevel.CONTENT_PROTECTION_LEVEL_SW_CRYPTO);
} catch (err) {
  let error = err as BusinessError;
  console.error(`isMediaKeySystemSupported ERROR: ${error}`);
}

MediaKeySystem

管理和记录MediaKeySession。在调用MediaKeySystem方法之前,必须使用createMediaKeySystem获取一个MediaKeySystem实例,然后才能调用其成员函数。

setConfigurationString

setConfigurationString(configName: string, value: string): void

设置配置信息以字符串类型返回。

系统能力: SystemCapability.Multimedia.Drm.Core

参数:

参数名 类型 必填 说明
configName string 配置类型名,由设备上的DRM方案决定。
value string 配置属性值。

错误码:

以下错误码的详细介绍请参见DRM错误码

错误码ID 错误信息
401 The parameter check failed. Possibly because: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. 3.Parameter verification failed.
24700101 All unknown errors
24700201 Service fatal error e.g. service died

示例:

import drm from '@ohos.multimedia.drm';
import { BusinessError } from '@ohos.base';

let mediaKeysystem: drm.MediaKeySystem = drm.createMediaKeySystem("com.clearplay.drm");
try {
  mediaKeysystem.setConfigurationString("configName", "configValue");
} catch (err) {
  let error = err as BusinessError;
  console.error(`setConfigurationString ERROR: ${error}`);
}

getConfigurationString

getConfigurationString(configName: string): string

获取配置信息以字符串类型返回。

系统能力: SystemCapability.Multimedia.Drm.Core

参数:

参数名 类型 必填 说明
configName string 配置类型名。

返回值:

类型 说明
string 返回字符串类型的配置属性值。

错误码:

以下错误码的详细介绍请参见DRM错误码

错误码ID 错误信息
401 The parameter check failed. Possibly because: 1.Mandatory parameters are left unspecified. 2.Parameter verification failed, the param's length is zero or too big(exceeds 4096 Bytes).
24700101 All unknown errors
24700201 Service fatal error e.g. service died

示例:

import drm from '@ohos.multimedia.drm';
import { BusinessError } from '@ohos.base';

let mediaKeysystem: drm.MediaKeySystem = drm.createMediaKeySystem("com.clearplay.drm");
try {
  let configValue: string = mediaKeysystem.getConfigurationString("configName");
} catch (err) {
  let error = err as BusinessError;
  console.error(`getConfigurationString ERROR: ${error}`);  
}

setConfigurationByteArray

setConfigurationByteArray(configName: string, value: Uint8Array): void

设置配置信息以字符数组类型返回。

系统能力: SystemCapability.Multimedia.Drm.Core

参数:

参数名 类型 必填 说明
configName string 配置类型名。
value Uint8Array 数组类型的配置属性值。

错误码:

以下错误码的详细介绍请参见DRM错误码

错误码ID 错误信息
401 The parameter check failed. Possibly because: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. 3.Parameter verification failed.
24700101 All unknown errors
24700201 Service fatal error e.g. service died

示例:

import drm from '@ohos.multimedia.drm';
import { BusinessError } from '@ohos.base';

let mediaKeysystem: drm.MediaKeySystem = drm.createMediaKeySystem("com.clearplay.drm");
let configValue = new Uint8Array([0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]);
try {
  mediaKeysystem.setConfigurationByteArray("configName", configValue);
} catch (err) {
  let error = err as BusinessError;
  console.error(`setConfigurationByteArray ERROR: ${error}`);  
}

getConfigurationByteArray

getConfigurationByteArray(configName: string): Uint8Array

获取配置信息以字符数组类型返回。

系统能力: SystemCapability.Multimedia.Drm.Core

参数:

参数名 类型 必填 说明
configName string 配置类型名。

返回值:

类型 说明
Uint8Array 返回数组类型的配置属性值。

错误码:

以下错误码的详细介绍请参见DRM错误码

错误码ID 错误信息
401 The parameter check failed. Possibly because: 1.Mandatory parameters are left unspecified. 2.Parameter verification failed.
24700101 All unknown errors
24700201 Service fatal error e.g. service died

示例:

import drm from '@ohos.multimedia.drm';
import { BusinessError } from '@ohos.base';

let mediaKeysystem: drm.MediaKeySystem = drm.createMediaKeySystem("com.clearplay.drm");
try {
  let configValue: Uint8Array = mediaKeysystem.getConfigurationByteArray("configName");
} catch (err) {
  let error = err as BusinessError;
  console.error(`getConfigurationByteArray ERROR: ${error}`);  
}

getStatistics

getStatistics(): StatisticKeyValue[]

获取性能统计信息。其中包括当前会话数、插件版本信息、解密次数和解密失败次数。

系统能力: SystemCapability.Multimedia.Drm.Core

返回值:

类型 说明
StatisticKeyValue[] 返回数组类型的性能统计信息。

错误码:

以下错误码的详细介绍请参见DRM错误码

错误码ID 错误信息
24700101 All unknown errors
24700201 Service fatal error e.g. service died

示例:

import drm from '@ohos.multimedia.drm';
import { BusinessError } from '@ohos.base';

let mediaKeysystem: drm.MediaKeySystem = drm.createMediaKeySystem("com.clearplay.drm");
try {
  let statisticKeyValue: drm.StatisticKeyValue[] = mediaKeysystem.getStatistics();
} catch (err) {
  let error = err as BusinessError;
  console.error(`getConfigurationByteArray ERROR: ${error}`);
}

getMaxContentProtectionLevel

getMaxContentProtectionLevel(): ContentProtectionLevel

获取设备支持的最大内容保护级别。

系统能力: SystemCapability.Multimedia.Drm.Core

返回值:

类型 说明
ContentProtectionLevel 返回设备支持的最大内容保护级别。

错误码:

以下错误码的详细介绍请参见DRM错误码

错误码ID 错误信息
24700101 All unknown errors
24700201 Service fatal error e.g. service died

示例:

import drm from '@ohos.multimedia.drm';
import { BusinessError } from '@ohos.base';

let mediaKeysystem: drm.MediaKeySystem = drm.createMediaKeySystem("com.clearplay.drm");
try {
  let maxLevel: drm.ContentProtectionLevel = mediaKeysystem.getMaxContentProtectionLevel();
} catch (err) {
  let error = err as BusinessError;
  console.error(`getConfigurationByteArray ERROR: ${error}`);
}

generateKeySystemRequest

generateKeySystemRequest(): Promise<ProvisionRequest>

生成获取mediaKeySystem设备证书的请求。

系统能力: SystemCapability.Multimedia.Drm.Core

返回值:

类型 说明
ProvisionRequest 获取mediaKeySystem设备证书的请求。

错误码:

以下错误码的详细介绍请参见DRM错误码

错误码ID 错误信息
24700101 All unknown errors
24700201 Service fatal error e.g. service died

示例:

import drm from '@ohos.multimedia.drm';
import { BusinessError } from '@ohos.base';

let mediaKeysystem: drm.MediaKeySystem = drm.createMediaKeySystem("com.clearplay.drm");
mediaKeysystem.generateKeySystemRequest().then((ProvisionRequest: drm.ProvisionRequest) => {
  console.log("generateKeySystemRequest");
}).catch((err: BusinessError) => {
  console.error(`generateKeySystemRequest: ERROR: ${err}`);
});

processKeySystemResponse

processKeySystemResponse(response: Uint8Array): Promise<void>

处理应用程序获得的设备证书请求对应的响应。

系统能力: SystemCapability.Multimedia.Drm.Core

参数:

参数名 类型 必填 说明
response Uint8Array 设备证书响应。

错误码:

以下错误码的详细介绍请参见DRM错误码

错误码ID 错误信息
401 he parameter check failed. Possibly because: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. 3.Parameter verification failed.
24700101 All unknown errors
24700201 Service fatal error e.g. service died

示例:

import drm from '@ohos.multimedia.drm';
import { BusinessError } from '@ohos.base';

let mediaKeysystem: drm.MediaKeySystem = drm.createMediaKeySystem("com.clearplay.drm");
let keySystemResponse = new Uint8Array([0x00, 0x00, 0x00, 0x00]);
mediaKeysystem.processKeySystemResponse(keySystemResponse).then(() => {
  console.log("processKeySystemResponse");
}).catch((err: BusinessError) => {
  console.error(`processKeySystemResponse: ERROR: ${err}`);
});

getCertificateStatus

getCertificateStatus():CertificateStatus

获取Oem设备证书状态值。

系统能力: SystemCapability.Multimedia.Drm.Core

返回值:

类型 说明
CertificateStatus 返回Oem证书状态值。

错误码:

以下错误码的详细介绍请参见DRM错误码

错误码ID 错误信息
24700101 All unknown errors
24700201 Service fatal error e.g. service died

示例:

import drm from '@ohos.multimedia.drm';
import { BusinessError } from '@ohos.base';

let mediaKeysystem = drm.createMediaKeySystem("com.clearplay.drm");
try {
  let certificateStatus: drm.CertificateStatus = mediaKeysystem.getCertificateStatus();
} catch (err) {
  let error = err as BusinessError;
  console.error(`getCertificateStatus ERROR: ${error}`);
}

on('keySystemRequired')

on(type: 'keySystemRequired', callback: (eventInfo: EventInfo) => void): void

监听设备证书请求,通过注册回调函数获取结果。

系统能力: SystemCapability.Multimedia.Drm.Core

参数:

参数名 类型 必填 说明
type string 监听事件,固定为'keySystemRequired',MediaKeySystem实例创建成功可监听。设备证书请求时触发该事件并返回。
callback Callback<EventInfo> 回调函数,用于获取结果,只要有该事件返回就证明需要请求设备证书。

错误码:

以下错误码的详细介绍请参见DRM错误码

错误码ID 错误信息
401 The parameter check failed. Possibly because: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types.
24700101 All unknown errors

示例:

import drm from '@ohos.multimedia.drm';

function registerkeySystemRequired(mediaKeysystem: drm.MediaKeySystem): void {
  mediaKeysystem.on('keySystemRequired', (eventInfo: drm.EventInfo) => {
    console.log('keySystemRequired' + 'extra:' + eventInfo.extraInfo + ' data:' + eventInfo.info);
  });
}

off('keySystemRequired')

off(type: 'keySystemRequired', callback?: (eventInfo: EventInfo) => void): void

注销监听设备证书请求,注销设备证书请求事件回调函数。

系统能力: SystemCapability.Multimedia.Drm.Core

参数:

参数名 类型 必填 说明
type string 监听事件,固定为'keySystemRequired',MediaKeySystem实例创建成功可监听。
callback Callback<EventInfo> 回调函数,可选。

错误码:

以下错误码的详细介绍请参见DRM错误码

错误码ID 错误信息
401 The parameter check failed. Possibly because: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types.
24700101 All unknown errors

示例:

function unregisterkeySystemRequired(mediaKeysystem: drm.MediaKeySystem): void {
  mediaKeysystem.off('keySystemRequired');
}

createMediaKeySession

createMediaKeySession(level: ContentProtectionLevel): MediaKeySession

根据给定的内容保护级别进行创建drm会话实例。

系统能力: SystemCapability.Multimedia.Drm.Core

参数:

参数名 类型 必填 说明
level ContentProtectionLevel 设备支持的内容保护级别。

返回值:

类型 说明
MediaKeySession 返回创建的MediaKeySession实例。

错误码:

以下错误码的详细介绍请参见DRM错误码

错误码ID 错误信息
401 The parameter check failed. Possibly because: 1.Mandatory parameters are left unspecified. 2.The param level exceeds reasonable range, please use value in ContentProtectionLevel.
24700101 MAll unknown errors
24700104 Meet max MediaKeySession num limit
24700201 Service fatal error e.g. service died

示例:

import drm from '@ohos.multimedia.drm';
import { BusinessError } from '@ohos.base';

let mediaKeysystem: drm.MediaKeySystem = drm.createMediaKeySystem("com.clearplay.drm");
try {
  let mediaKeySession: drm.MediaKeySession = mediaKeysystem.createMediaKeySession(drm.ContentProtectionLevel.CONTENT_PROTECTION_LEVEL_SW_CRYPTO);
} catch (err) {
  let error = err as BusinessError;
  console.error(`createMediaKeySession ERROR: ${error}`);
}

createMediaKeySession

createMediaKeySession(): MediaKeySession

根据默认的软件内容保护级别进行创建drm会话实例。

系统能力: SystemCapability.Multimedia.Drm.Core

返回值:

类型 说明
MediaKeySession 返回创建的MediaKeySession实例。

错误码:

以下错误码的详细介绍请参见DRM错误码

错误码ID 错误信息
24700101 All unknown errors
24700104 Meet max MediaKeySession num limit
24700201 Service fatal error e.g. service died

示例:

import drm from '@ohos.multimedia.drm';
import { BusinessError } from '@ohos.base';

let mediaKeysystem: drm.MediaKeySystem = drm.createMediaKeySystem("com.clearplay.drm");
try {
  let mediaKeySession: drm.MediaKeySession = mediaKeysystem.createMediaKeySession();
} catch (err) {
  let error = err as BusinessError;
  console.error(`createMediaKeySession ERROR: ${error}`);
}

getOfflineMediaKeyIds

getOfflineMediaKeyIds(): Uint8Array[]

获取离线许可证Id。

系统能力: SystemCapability.Multimedia.Drm.Core

返回值:

类型 说明
Uint8Array[] 返回数组类型的离线许可证的Id。

错误码:

以下错误码的详细介绍请参见DRM错误码

错误码ID 错误信息
24700101 All unknown errors
24700201 Service fatal error e.g. service died

示例:

import drm from '@ohos.multimedia.drm';
import { BusinessError } from '@ohos.base';

let mediaKeysystem: drm.MediaKeySystem = drm.createMediaKeySystem("com.clearplay.drm");
try {
  let offlineMediaKeyIds: Uint8Array[] = mediaKeysystem.getOfflineMediaKeyIds();
} catch (err) {
  let error = err as BusinessError;
  console.error(`getOfflineMediaKeyIds ERROR: ${error}`);
}

getOfflineMediaKeyStatus

getOfflineMediaKeyStatus(mediaKeyId: Uint8Array): OfflineMediaKeyStatus

获取离线许可证返回状态。

系统能力: SystemCapability.Multimedia.Drm.Core

参数:

参数名 类型 必填 说明
mediaKeyId Uint8Array 离线许可证Id。

返回值:

类型 说明
OfflineMediaKeyStatus 返回指定mediaKeyId对应的许可证状态值。

错误码:

以下错误码的详细介绍请参见DRM错误码

错误码ID 错误信息
401 The parameter check failed. Possibly because: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. 3.Parameter verification failed.
24700101 All unknown errors
24700201 Service fatal error e.g. service died

示例:

import drm from '@ohos.multimedia.drm';
import { BusinessError } from '@ohos.base';

let mediaKeysystem: drm.MediaKeySystem = drm.createMediaKeySystem("com.clearplay.drm");
let mediaKeyIdString = new Uint8Array([0x00, 0x00, 0x00, 0x00]);
try {
  let configValue: drm.OfflineMediaKeyStatus = mediaKeysystem.getOfflineMediaKeyStatus(mediaKeyIdString);
} catch (err) {
  let error = err as BusinessError;
  console.error(`getOfflineMediaKeyStatus ERROR: ${error}`);
}

clearOfflineMediaKeys

clearOfflineMediaKeys(mediaKeyId: Uint8Array): void

根据指定的离线许可证Id删除离线许可证。

系统能力: SystemCapability.Multimedia.Drm.Core

参数:

参数名 类型 必填 说明
mediaKeyId Uint8Array 离线许可证Id。 离线许可证Id可以在MediaKeySession成员processMeidaKeyResponse返回值中获取

错误码:

以下错误码的详细介绍请参见DRM错误码

错误码ID 错误信息
401 The parameter check failed.Possibly because: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types.
24700101 All unknown errors
24700201 Service fatal error e.g. service died

示例:

import drm from '@ohos.multimedia.drm';
import { BusinessError } from '@ohos.base';

let mediaKeysystem: drm.MediaKeySystem = drm.createMediaKeySystem("com.clearplay.drm");
let mediaKeyIdString = new Uint8Array([0x00, 0x00, 0x00, 0x00]);
try {
  mediaKeysystem.clearOfflineMediaKeys(mediaKeyIdString);
} catch (err) {
  let error = err as BusinessError;
  console.error(`clearOfflineMediaKeys ERROR: ${error}`);
}

destroy

destroy(): void

销毁MediaKeySystem运行时申请的资源。

系统能力: SystemCapability.Multimedia.Drm.Core

错误码:

以下错误码的详细介绍请参见DRM错误码

错误码ID 错误信息
24700101 All unknown errors
24700201 Service fatal error e.g. service died

示例:

import drm from '@ohos.multimedia.drm';
import { BusinessError } from '@ohos.base';

let mediaKeysystem: drm.MediaKeySystem = drm.createMediaKeySystem("com.clearplay.drm");
try {
  mediaKeysystem.destroy();
} catch (err) {
  let error = err as BusinessError;
  console.error(`mediaKeysystem destroy ERROR: ${error}`);
}

MediaKeySession

许可证及解密模块管理。在调用MediaKeySession方法之前,我们必须使用createMediaKeySession获取一个MediaKeySession实例,然后才能调用其成员函数。

generateMediaKeyRequest

generateMediaKeyRequest(mimeType: string, initData: Uint8Array, mediaKeyType: number, options?: OptionsData[]): Promise<MediaKeyRequest>

生成许可证请求。

系统能力: SystemCapability.Multimedia.Drm.Core

参数:

参数名 类型 必填 说明
mimeType string 媒体类型。
initData Uint8Array pssh数据(未base64编码)。
mediaKeyType number 许可证类型。 0表示在线,1表示离线
OptionsData OptionsData[] 预留的操作数据。

返回值:

类型 说明
MediaKeyRequest 返回许可证请求。

错误码:

以下错误码的详细介绍请参见DRM错误码

错误码ID 错误信息
401 The parameter check failed. Possibly because: 1.Mandatory parameters are left unspecified or too many parameters. 2.Incorrect parameter types. 3.Parameter verification failed.
24700101 All unknown errors
24700201 Service fatal error e.g. service died

示例:

import drm from '@ohos.multimedia.drm';
import { BusinessError } from '@ohos.base';

let mediaKeysystem: drm.MediaKeySystem = drm.createMediaKeySystem("com.clearplay.drm");
let mediaKeySession: drm.MediaKeySession = mediaKeysystem.createMediaKeySession();
let optionsData: drm.OptionsData[]  = [
    {name : "optionsDataNameA", value : "optionsDataValueA"},
    {name : "optionsDataNameB", value : "optionsDataValueB"}
];
let uint8pssh = new Uint8Array([0x00, 0x00, 0x00, 0x00]);
mediaKeySession.generateMediaKeyRequest("video/mp4", uint8pssh, 0, optionsData).then((mediaKeyRequest: drm.MediaKeyRequest) =>{
  console.log('generateMediaKeyRequest' + mediaKeyRequest);
}).catch((err: BusinessError) => {
  console.error(`generateMediaKeyRequest: ERROR: ${err}`);
});

processMediaKeyResponse

processMediaKeyResponse(response: Uint8Array): Promise<Uint8Array>

处理离线许可证响应返回。

系统能力: SystemCapability.Multimedia.Drm.Core

参数:

参数名 类型 必填 说明
response Uint8Array 许可证响应。

返回值:

类型 说明
[Uint8Array] 返回许可证Id。

错误码:

以下错误码的详细介绍请参见DRM错误码

错误码ID 错误信息
401 The parameter check failed. Possibly because: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. 3.Parameter verification failed.
24700101 All unknown errors
24700201 Service fatal error e.g. service died

示例:

import drm from '@ohos.multimedia.drm';
import { BusinessError } from '@ohos.base';

let mediaKeysystem: drm.MediaKeySystem = drm.createMediaKeySystem("com.clearplay.drm");
let mediaKeySession: drm.MediaKeySession = mediaKeysystem.createMediaKeySession();
let mediaKeyResponse = new Uint8Array([0x00, 0x00, 0x00, 0x00]);
mediaKeySession.processMediaKeyResponse(mediaKeyResponse).then((mediaKeyId: Uint8Array) => {
  console.log('processMediaKeyResponse:' + mediaKeyId);
}).catch((err: BusinessError) => {
  console.error(`processMediaKeyResponse: ERROR: ${err}`);
});

checkMediaKeyStatus

checkMediaKeyStatus(): MediaKeyStatus[]

检查在线许可证状态。

系统能力: SystemCapability.Multimedia.Drm.Core

返回值:

类型 说明
MediaKeyStatus[] 返回数组类型的许可证状态值。

错误码:

以下错误码的详细介绍请参见DRM错误码

错误码ID 错误信息
24700101 All unknown errors
24700201 Service fatal error e.g. service died

示例:

import drm from '@ohos.multimedia.drm';
import { BusinessError } from '@ohos.base';

let mediaKeysystem: drm.MediaKeySystem = drm.createMediaKeySystem("com.clearplay.drm");
let mediaKeySession: drm.MediaKeySession = mediaKeysystem.createMediaKeySession();
try {
  let keyStatus: drm.MediaKeyStatus[] =  mediaKeySession.checkMediaKeyStatus();
} catch (err) {
  let error = err as BusinessError;
  console.error(`checkMediaKeyStatus ERROR: ${error}`);
}

clearMediaKeys

clearMediaKeys(): void

删除在线许可证。

系统能力: SystemCapability.Multimedia.Drm.Core

错误码:

以下错误码的详细介绍请参见DRM错误码

错误码ID 错误信息
24700101 All unknown errors
24700201 Service fatal error e.g. service died

示例:

import drm from '@ohos.multimedia.drm';
import { BusinessError } from '@ohos.base';

let mediaKeysystem: drm.MediaKeySystem = drm.createMediaKeySystem("com.clearplay.drm");
let mediaKeySession: drm.MediaKeySession = mediaKeysystem.createMediaKeySession();
try {
  mediaKeySession.clearMediaKeys();
} catch (err) {
  let error = err as BusinessError;
  console.error(`clearMediaKeys ERROR: ${error}`);
}
 

generateOfflineReleaseRequest

generateOfflineReleaseRequest(mediaKeyId: Uint8Array): Promise<Uint8Array>

生成离线许可证释放请求。

系统能力: SystemCapability.Multimedia.Drm.Core

参数:

参数名 类型 必填 说明
mediaKeyId Uint8Array 离线许可证Id

返回值:

类型 说明
[Uint8Array] 返回离线许可证释放的请求。

错误码:

以下错误码的详细介绍请参见DRM错误码

错误码ID 错误信息
401 The parameter check failed. Possibly because: 1.Mandatory parameters are left unspecified or too many parameters. 2.Incorrect parameter types. 3.Parameter verification failed.
24700101 All unknown errors
24700201 Service fatal error e.g. service died

示例:

import drm from '@ohos.multimedia.drm';
import { BusinessError } from '@ohos.base';

let mediaKeysystem: drm.MediaKeySystem = drm.createMediaKeySystem("com.clearplay.drm");
let mediaKeySession: drm.MediaKeySession = mediaKeysystem.createMediaKeySession();
let Request = new Uint8Array([0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]);
mediaKeySession.processMediaKeyResponse(Request).then((mediaKeyId: Uint8Array) => {
  console.log('processMediaKeyResponse:' + mediaKeyId);
}).catch((err: BusinessError) => {
  console.error(`processMediaKeyResponse: ERROR: ${err}`);
});
let mediaKeyId = new Uint8Array([0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]);
mediaKeySession.generateOfflineReleaseRequest(mediaKeyId).then((offlineReleaseRequest: Uint8Array) => {
  console.log('generateOfflineReleaseRequest:' + offlineReleaseRequest);
}).catch((err: BusinessError) => {
  console.error(`generateOfflineReleaseRequest: ERROR: ${err}`);
});

processOfflineReleaseResponse

processOfflineReleaseResponse(mediaKeyId: Uint8Array, response: Uint8Array): Promise<void>

处理离线许可证响应。

系统能力: SystemCapability.Multimedia.Drm.Core

参数:

参数名 类型 必填 说明
mediaKeyId Uint8Array 离线许可证Id。
response Uint8Array 离线许可证释放响应。

错误码:

以下错误码的详细介绍请参见DRM错误码

错误码ID 错误信息
401 The parameter check failed. Possibly because: 1.Mandatory parameters are left unspecified or too many parameters. 2.Incorrect parameter types. 3.Parameter verification failed.
24700101 All unknown errors
24700201 Service fatal error e.g. service died

示例:

import drm from '@ohos.multimedia.drm';
import { BusinessError } from '@ohos.base';

let mediaKeysystem: drm.MediaKeySystem = drm.createMediaKeySystem("com.clearplay.drm");
let mediaKeySession: drm.MediaKeySession = mediaKeysystem.createMediaKeySession();
let offlineReleaseRequest = new Uint8Array([0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]);
mediaKeySession.processMediaKeyResponse(offlineReleaseRequest).then((mediaKeyId: Uint8Array) => {
  console.log('processMediaKeyResponse:' + mediaKeyId);
}).catch((err: BusinessError) => {
  console.error(`processMediaKeyResponse: ERROR: ${err}`);
});
let mediaKeyId = new Uint8Array([0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]);
let response = new Uint8Array([0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]);
mediaKeySession.processOfflineReleaseResponse(mediaKeyId, response).then(() => {
  console.log('processOfflineReleaseResponse');
}).catch((err: BusinessError) => {
  console.error(`processOfflineReleaseResponse: ERROR: ${err}`);
});

restoreOfflineMediaKeys

restoreOfflineMediaKeys(mediaKeyId: Uint8Array): Promise<void>

恢复离线许可证。

系统能力: SystemCapability.Multimedia.Drm.Core

参数:

参数名 类型 必填 说明
mediaKeyId Uint8Array 离线许可证Id。

错误码:

以下错误码的详细介绍请参见DRM错误码

错误码ID 错误信息
401 The parameter check failed. Possibly because: 1.Mandatory parameters are left unspecified or too many parameters. 2.Incorrect parameter types. 3.Parameter verification failed.
24700101 All unknown errors
24700201 Service fatal error e.g. service died

示例:

import drm from '@ohos.multimedia.drm';
import { BusinessError } from '@ohos.base';

let mediaKeysystem: drm.MediaKeySystem = drm.createMediaKeySystem("com.clearplay.drm");
let mediaKeySession: drm.MediaKeySession = mediaKeysystem.createMediaKeySession();
let response = new Uint8Array ([0x00,0x00]);
let mediaKeyId = new Uint8Array ([0x00,0x00]);
mediaKeySession.processOfflineReleaseResponse(mediaKeyId, response).then(() => {
  console.log('processOfflineReleaseResponse');
}).catch((err: BusinessError) => {
  console.error(`processOfflineReleaseResponse: ERROR: ${err}`);
});
mediaKeySession.restoreOfflineMediaKeys(mediaKeyId).then(() => {
  console.log("restoreOfflineMediaKeys");
}).catch((err: BusinessError) => {
  console.error(`restoreOfflineMediaKeys: ERROR: ${err}`);
});

getContentProtectionLevel

getContentProtectionLevel(): ContentProtectionLevel

获取当前会话的内容保护级别。

系统能力: SystemCapability.Multimedia.Drm.Core

返回值:

类型 说明
ContentProtectionLevel 返回当前会话内容保护级别的值。

错误码:

以下错误码的详细介绍请参见DRM错误码

错误码ID 错误信息
24700101 All unknown errors
24700201 Service fatal error e.g. service died

示例:

import drm from '@ohos.multimedia.drm';
import { BusinessError } from '@ohos.base';

let mediaKeysystem: drm.MediaKeySystem = drm.createMediaKeySystem("com.clearplay.drm");
let mediaKeySession: drm.MediaKeySession = mediaKeysystem.createMediaKeySession();
try {
  let contentProtectionLevel: drm.ContentProtectionLevel = mediaKeySession.getContentProtectionLevel();
} catch (err) {
  let error = err as BusinessError;
  console.error(`getContentProtectionLevel ERROR: ${error}`);
}

requireSecureDecoderModule

requireSecureDecoderModule(mimeType: string): boolean

获取安全解码模块状态。

系统能力: SystemCapability.Multimedia.Drm.Core

参数:

参数名 类型 必填 说明
mimeType string 媒体类型。

返回值:

类型 说明
[boolean] 请求安全解码模块状态,true表示安全解码模块就绪,false表示安全解码模块未就绪。

错误码:

以下错误码的详细介绍请参见DRM错误码

错误码ID 错误信息
401 The parameter check failed. Possibly because: 1.Mandatory parameters are left unspecified or too many parameters. 2.Incorrect parameter types. 3.Parameter verification failed.
24700101 All unknown errors
24700201 Service fatal error e.g. service died

示例:

import drm from '@ohos.multimedia.drm';
import { BusinessError } from '@ohos.base';

let mediaKeysystem: drm.MediaKeySystem = drm.createMediaKeySystem("com.clearplay.drm");
let mediaKeySession: drm.MediaKeySession = mediaKeysystem.createMediaKeySession();
try {
  let status: boolean = mediaKeySession.requireSecureDecoderModule("mimeType");
} catch (err) {
  let error = err as BusinessError;
  console.error(`requireSecureDecoderModule ERROR: ${error}`);
}

on('keyRequired')

on(type: 'keyRequired', callback: (eventInfo: EventInfo) => void): void

监听密钥请求事件,通过注册回调函数获取结果。

系统能力: SystemCapability.Multimedia.Drm.Core

参数:

参数名 类型 必填 说明
type string 监听事件,固定为'keyRequired',MediaKeySystem实例创建成功可监听。key请求时触发该事件并返回。
callback Callback<EventInfo> 回调函数,用于获取结果。只要有该事件返回就证明在进行key请求。

错误码:

以下错误码的详细介绍请参见DRM错误码

错误码ID 错误信息
401 The parameter check failed. Possibly because: 1.Mandatory parameters are left unspecified or too many parameters. 2.Incorrect parameter types. 3.Parameter verification failed.
24700101 All unknown errors

示例:

import drm from '@ohos.multimedia.drm';

function registerKeyRequired(mediaKeysession: drm.MediaKeySession): void {
    mediaKeysession.on('keyRequired', (eventInfo: drm.EventInfo) => {
        console.log('keyRequired' + 'extra:' + eventInfo.extraInfo + ' data:' + eventInfo.info);
    });
}

off('keyRequired')

off(type: 'keyRequired', callback?: (eventInfo: EventInfo) => void): void

注销监听密钥请求事件,注销密钥请求事件回调函数。

系统能力: SystemCapability.Multimedia.Drm.Core

参数:

参数名 类型 必填 说明
type string 监听事件,固定为'keyRequired',MediaKeySystem实例创建成功可监听。
callback Callback<EventInfo> 回调函数,可选

错误码:

以下错误码的详细介绍请参见DRM错误码

错误码ID 错误信息
401 The parameter check failed. Possibly because: 1.Mandatory parameters are left unspecified or too many parameters. 2.Incorrect parameter types. 3.Parameter verification failed.
24700101 All unknown errors

示例:

import drm from '@ohos.multimedia.drm';

function unregisterKeyRequired(mediaKeysession: drm.MediaKeySession): void {
  mediaKeysession.off('keyRequired');
}

on('keyExpired')

on(type: 'keyExpired', callback: (eventInfo: EventInfo) => void): void

监听密钥过期,通过注册回调函数获取结果。

系统能力: SystemCapability.Multimedia.Drm.Core

参数:

参数名 类型 必填 说明
type string 监听事件,固定为'keyExpired',MediaKeySystem实例创建成功可监听。密钥过期时触发该事件并返回。
callback Callback<EventInfo> 回调函数,用于获取结果。只要有该事件返回就证明会话丢失。

错误码:

以下错误码的详细介绍请参见DRM错误码

错误码ID 错误信息
401 The parameter check failed. Possibly because: 1.Mandatory parameters are left unspecified or too many parameters. 2.Incorrect parameter types. 3.Parameter verification failed.
24700101 All unknown errors

示例:

import drm from '@ohos.multimedia.drm';

function registerKeyExpired(mediaKeysession: drm.MediaKeySession): void {
    mediaKeysession.on('keyExpired', (eventInfo: drm.EventInfo) => {
        console.log('keyExpired' + 'extra:' + eventInfo.extraInfo + ' data:' + eventInfo.info);
    });
}

off('keyExpired')

off(type: 'keyExpired', callback?: (eventInfo: EventInfo) => void): void

注销监听密钥过期事件,注销密钥过期事件回调函数。

系统能力: SystemCapability.Multimedia.Drm.Core

参数:

参数名 类型 必填 说明
type string 监听事件,固定为'keyExpired',MediaKeySystem实例创建成功可监听。
callback Callback<EventInfo> 回调函数,可选

错误码:

以下错误码的详细介绍请参见DRM错误码

错误码ID 错误信息
401 The parameter check failed. Possibly because: 1.Mandatory parameters are left unspecified or too many parameters. 2.Incorrect parameter types. 3.Parameter verification failed.
24700101 All unknown errors

示例:

import drm from '@ohos.multimedia.drm';

function unregisterKeyExpired(mediaKeysession: drm.MediaKeySession): void {
  mediaKeysession.off('keyExpired');
}

on('vendorDefined')

on(type: 'vendorDefined', callback: (eventInfo: EventInfo) => void): void

监听第三方定义事件,通过注册回调函数获取结果。

系统能力: SystemCapability.Multimedia.Drm.Core

参数:

参数名 类型 必填 说明
type string 监听事件,固定为'vendorDefined',MediaKeySystem实例创建成功可监听。第三方定义事件发生时触发该事件并返回。
callback Callback<EventInfo> 回调函数,用于获取结果。只要有该事件返回就证明会话丢失。

错误码:

以下错误码的详细介绍请参见DRM错误码

错误码ID 错误信息
401 The parameter check failed. Possibly because: 1.Mandatory parameters are left unspecified or too many parameters. 2.Incorrect parameter types. 3.Parameter verification failed.
24700101 All unknown errors

示例:

import drm from '@ohos.multimedia.drm';

function registerVendorDefinedt(mediaKeysession: drm.MediaKeySession): void {
    mediaKeysession.on('vendorDefined', (eventInfo: drm.EventInfo) => {
        console.log('vendorDefined' + 'extra:' + eventInfo.extraInfo + ' data:' + eventInfo.info);
    });
}

off('vendorDefined')

off(type: 'vendorDefined', callback?: (eventInfo: EventInfo) => void): void

注销监听第三方定义事件,注销第三方定义事件回调函数。

系统能力: SystemCapability.Multimedia.Drm.Core

参数:

参数名 类型 必填 说明
type string 监听事件,固定为'vendorDefined',MediaKeySystem实例创建成功可监听。
callback Callback<EventInfo> 回调函数,可选

错误码:

以下错误码的详细介绍请参见DRM错误码

错误码ID 错误信息
401 The parameter check failed. Possibly because: 1.Mandatory parameters are left unspecified or too many parameters. 2.Incorrect parameter types. 3.Parameter verification failed.
24700101 All unknown errors

示例:

import drm from '@ohos.multimedia.drm';

function unregisterVendorDefined(mediaKeysession: drm.MediaKeySession): void {
  mediaKeysession.off('vendorDefined');
}

on('expirationUpdate')

on(type: 'expirationUpdate', callback: (eventInfo: EventInfo) => void): void

监听过期更新事件,通过注册回调函数获取结果。

系统能力: SystemCapability.Multimedia.Drm.Core

参数:

参数名 类型 必填 说明
type string 监听事件,固定为'expirationUpdate',MediaKeySystem实例创建成功可监听。密钥过期更新时触发该事件并返回。
callback Callback<EventInfo> 回调函数,用于获取结果。只要有该事件返回就证明会话丢失。

错误码:

以下错误码的详细介绍请参见DRM错误码

错误码ID 错误信息
401 The parameter check failed. Possibly because: 1.Mandatory parameters are left unspecified or too many parameters. 2.Incorrect parameter types. 3.Parameter verification failed.
24700101 All unknown errors

示例:

import drm from '@ohos.multimedia.drm';

function registerExpirationUpdate(mediaKeysession: drm.MediaKeySession): void {
    mediaKeysession.on('expirationUpdate', (eventInfo: drm.EventInfo) => {
        console.log('expirationUpdate' + 'extra:' + eventInfo.extraInfo + ' data:' + eventInfo.info);
    });
}

off('expirationUpdate')

off(type: 'expirationUpdate', callback?: (eventInfo: EventInfo) => void): void

注销监听过期更新事件,注销过期更新事件回调函数。

系统能力: SystemCapability.Multimedia.Drm.Core

参数:

参数名 类型 必填 说明
type string 监听事件,固定为'expirationUpdate',MediaKeySystem实例创建成功可监听。
callback Callback<EventInfo> 回调函数,可选

错误码:

以下错误码的详细介绍请参见DRM错误码

错误码ID 错误信息
401 The parameter check failed. Possibly because: 1.Mandatory parameters are left unspecified or too many parameters. 2.Incorrect parameter types. 3.Parameter verification failed.
24700101 All unknown errors

示例:

import drm from '@ohos.multimedia.drm';

function unregisterExpirationUpdate(mediaKeysession: drm.MediaKeySession): void {
    mediaKeysession.off('expirationUpdate');
}

on('keysChange')

on(type: 'keysChange', callback: (keyInfo: KeysInfo[], newKeyAvailable: boolean) => void): void

监听密钥变化事件,通过注册回调函数获取结果。

系统能力: SystemCapability.Multimedia.Drm.Core

参数:

参数名 类型 必填 说明
type string 监听事件,固定为'keysChange',MediaKeySystem实例创建成功可监听。密钥变化时触发该事件并返回。
callback Callback<EventInfo> 回调函数,用于获取结果。只要有该事件返回就证明会话丢失。

错误码:

以下错误码的详细介绍请参见DRM错误码

错误码ID 错误信息
401 The parameter check failed. Possibly because: 1.Mandatory parameters are left unspecified or too many parameters. 2.Incorrect parameter types. 3.Parameter verification failed.
24700101 All unknown errors

示例:

import drm from '@ohos.multimedia.drm';

function registerkeysChange(mediaKeysession: drm.MediaKeySession): void {
    mediaKeysession.on('keysChange', (keyInfo: drm.KeysInfo[], newKeyAvailable: boolean) => {
        console.log('keysChange' + 'keyId:' + keyInfo.keyId + ' data:' + keyInfo.value);
    });
}

off('keysChange')

off(type: 'keysChange', callback?: (keyInfo: KeysInfo[], newKeyAvailable: boolean) => void): void

注销监听密钥变化事件,注销密钥变化事件回调函数。

系统能力: SystemCapability.Multimedia.Drm.Core

参数:

参数名 类型 必填 说明
type string 监听事件,固定为'keysChange',MediaKeySystem实例创建成功可监听。
callback Callback<EventInfo> 回调函数,可选

错误码:

以下错误码的详细介绍请参见DRM错误码

错误码ID 错误信息
401 The parameter check failed. Possibly because: 1.Mandatory parameters are left unspecified or too many parameters. 2.Incorrect parameter types. 3.Parameter verification failed.
24700101 All unknown errors

示例:

import drm from '@ohos.multimedia.drm';

function unregisterkeyChange(mediaKeysession: drm.MediaKeySession): void {
    mediaKeysession.off('keysChange');
}

destroy

destroy(): void

销毁MediaKeySession运行时申请的资源。

系统能力: SystemCapability.Multimedia.Drm.Core

错误码:

以下错误码的详细介绍请参见DRM错误码

错误码ID 错误信息
24700101 All unknown errors
24700201 Service fatal error e.g. service died

示例:

import drm from '@ohos.multimedia.drm';
import { BusinessError } from '@ohos.base';
let mediaKeysystem: drm.MediaKeySystem = drm.createMediaKeySystem("com.clearplay.drm");
let mediaKeySession: drm.MediaKeySession = mediaKeysystem.createMediaKeySession();
try {
  mediaKeySession.destroy();
} catch (err) {
  let error = err as BusinessError;
  console.error(`mediaKeySession destroy ERROR: ${error}`);
}