diff --git a/multimedia/player_framework/avplayer.h b/multimedia/player_framework/avplayer.h index 32a883a55794b65cea274104caaffc31b79e9c53..44e69039b7e3100a73e69ad5ae30cb967f57a46a 100644 --- a/multimedia/player_framework/avplayer.h +++ b/multimedia/player_framework/avplayer.h @@ -42,6 +42,8 @@ #include #include "native_averrors.h" #include "avplayer_base.h" +#include "native_drm_common.h" +#include "native_mediakeysession.h" #ifdef __cplusplus extern "C" { @@ -426,6 +428,46 @@ 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 11 + * @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 object pointer. + * @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 11 + * @version 1.0 + */ +OH_AVErrCode OH_AVPlayer_SetMediaKeySystemInfoCallback(OH_AVPlayer *player, + DRM_MediaKeySystemInfoCallback callback); + +/** + * @brief Obtains media key system info to create media key session. + * @syscap SystemCapability.Multimedia.Media.AVPlayer + * @param player Pointer to an OH_AVPlayer instance + * @param mediaKeySystemInfo Indicates the media key system info which ram space allocated + * by callee and released by caller. + * @return Returns {@link AV_ERR_OK} if the current position is get; returns an error code defined + * in {@link native_averrors.h} otherwise. + * @since 11 + * @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..9315dcba57ffcb9a3ed1dade03124b90486e0e2a 100644 --- a/multimedia/player_framework/avplayer/libavplayer.ndk.json +++ b/multimedia/player_framework/avplayer/libavplayer.ndk.json @@ -26,5 +26,8 @@ { "name": "OH_AVPlayer_SetPlayerCallback" }, { "name": "OH_AVPlayer_SelectTrack" }, { "name": "OH_AVPlayer_DeselectTrack" }, - { "name": "OH_AVPlayer_GetCurrentTrack" } + { "name": "OH_AVPlayer_GetCurrentTrack" }, + { "name": "OH_AVPlayer_SetDecryptionConfig" }, + { "name": "OH_AVPlayer_SetMediaKeySystemInfoCallback" }, + { "name": "OH_AVPlayer_GetMediaKeySystemInfo" } ] \ No newline at end of file