diff --git a/multimedia/player_framework/avplayer.h b/multimedia/player_framework/avplayer.h index e8db017f06a7689d127e9966c8a6faa63271472b..55ed4785ef29ec065e6da326e475bc395caff534 100644 --- a/multimedia/player_framework/avplayer.h +++ b/multimedia/player_framework/avplayer.h @@ -48,6 +48,10 @@ extern "C" { #endif +typedef struct MediaKeySession MediaKeySession; +typedef struct DRM_MediaKeySystemInfo DRM_MediaKeySystemInfo; +typedef void (*DRM_MediaKeySystemInfoCallback)(DRM_MediaKeySystemInfo* mediaKeySystemInfo); + /** * @brief Create a player * @syscap SystemCapability.Multimedia.Media.AVPlayer @@ -427,6 +431,47 @@ OH_AVErrCode OH_AVPlayer_DeselectTrack(OH_AVPlayer *player, int32_t index); */ OH_AVErrCode OH_AVPlayer_GetCurrentTrack(OH_AVPlayer *player, int32_t trackType, int32_t *index); +/** + * @brief Set decryption info. + * + * @syscap SystemCapability.Multimedia.Media.AVPlayer + * @param player Pointer to an OH_AVPlayer instance. + * @param mediaKeySession A media key session instance with decryption function. + * @param secureVideoPath Require secure decoder or not. + * @return Returns {@link AV_ERR_OK} if set successfully; returns an error code defined + * in {@link native_averrors.h} otherwise. + * @since 12 + * @version 1.0 +*/ +OH_AVErrCode OH_AVPlayer_SetDecryptionConfig(OH_AVPlayer *player, MediaKeySession *mediaKeySession, + bool secureVideoPath); + +/** + * @brief Method to set player media key system info callback. + * + * @syscap SystemCapability.Multimedia.Media.AVPlayer + * @param player Pointer to an OH_AVPlayer instance. + * @param callback Function called when media key system info found. + * @return Returns {@link AV_ERR_OK} if the media key system info callback is set; returns an + * error code defined in {@link native_averrors.h} otherwise. + * @since 12 + * @version 1.0 + */ +OH_AVErrCode OH_AVPlayer_SetMediaKeySystemInfoCallback(OH_AVPlayer *player, + DRM_MediaKeySystemInfoCallback callback); + +/** + * @brief Obtains media key system info. + * + * @syscap SystemCapability.Multimedia.Media.AVPlayer + * @param player Pointer to an OH_AVPlayer instance. + * @param mediaKeySystemInfo Indicates the media key system info. + * @return Returns {@link AV_ERR_OK} if the current position is get; returns an error code defined + * in {@link native_averrors.h} otherwise. + * @since 12 + * @version 1.0 + */ +OH_AVErrCode OH_AVPlayer_GetMediaKeySystemInfo(OH_AVPlayer *player, DRM_MediaKeySystemInfo *mediaKeySystemInfo); #ifdef __cplusplus } diff --git a/multimedia/player_framework/avplayer/libavplayer.ndk.json b/multimedia/player_framework/avplayer/libavplayer.ndk.json index d622cc601c308aa2d630fac0e76e9e7d42098ea8..dcdb919dbcc6c047b670e1e615dabca537247676 100644 --- a/multimedia/player_framework/avplayer/libavplayer.ndk.json +++ b/multimedia/player_framework/avplayer/libavplayer.ndk.json @@ -26,5 +26,17 @@ { "name": "OH_AVPlayer_SetPlayerCallback" }, { "name": "OH_AVPlayer_SelectTrack" }, { "name": "OH_AVPlayer_DeselectTrack" }, - { "name": "OH_AVPlayer_GetCurrentTrack" } -] \ No newline at end of file + { "name": "OH_AVPlayer_GetCurrentTrack" }, + { + "first_introduced": "12", + "name": "OH_AVPlayer_SetDecryptionConfig" + }, + { + "first_introduced": "12", + "name": "OH_AVPlayer_SetMediaKeySystemInfoCallback" + }, + { + "first_introduced": "12", + "name": "OH_AVPlayer_GetMediaKeySystemInfo" + } +]