1 /* 2 * Copyright (C) 2023 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16 /** 17 * @addtogroup AVPlayer 18 * @{ 19 * 20 * @brief Provides APIs of Playback capability for Media Source. 21 * 22 * @Syscap SystemCapability.Multimedia.Media.AVPlayer 23 * @since 11 24 * @version 1.0 25 */ 26 27 /** 28 * @file avplayer.h 29 * 30 * @brief Defines the avplayer APIs. Uses the Native APIs provided by Media AVPlayer 31 * to play the media source. 32 * 33 * @kit MediaKit 34 * @library libavplayer.so 35 * @since 11 36 * @version 1.0 37 */ 38 39 #ifndef MULTIMEDIA_PLAYER_FRAMEWORK_NATIVE_AVPLAYER_H 40 #define MULTIMEDIA_PLAYER_FRAMEWORK_NATIVE_AVPLAYER_H 41 42 #include <stdbool.h> 43 #include <stdint.h> 44 #include <stdio.h> 45 #include "native_averrors.h" 46 #include "avplayer_base.h" 47 #include "native_window/external_window.h" 48 #include "ohaudio/native_audiostream_base.h" 49 50 #ifdef __cplusplus 51 extern "C" { 52 #endif 53 54 /** 55 * @brief MediaKeySession field. 56 * @since 12 57 * @version 1.0 58 */ 59 typedef struct MediaKeySession MediaKeySession; 60 /** 61 * @brief DRM_MediaKeySystemInfo field. 62 * @since 12 63 * @version 1.0 64 */ 65 typedef struct DRM_MediaKeySystemInfo DRM_MediaKeySystemInfo; 66 67 /** 68 * @brief Call back will be invoked when updating DRM information. 69 * @param player Player instance. 70 * @param mediaKeySystemInfo DRM information. 71 * @return void 72 * @since 12 73 * @version 1.0 74 */ 75 typedef void (*Player_MediaKeySystemInfoCallback)(OH_AVPlayer *player, DRM_MediaKeySystemInfo* mediaKeySystemInfo); 76 77 /** 78 * @brief Create a player 79 * @syscap SystemCapability.Multimedia.Media.AVPlayer 80 * @return Returns a pointer to an OH_AVPlayer instance for success, nullptr for failure 81 * Possible failure causes: 1. failed to PlayerFactory::CreatePlayer. 2. failed to new PlayerObject. 82 * @since 11 83 * @version 1.0 84 */ 85 OH_AVPlayer *OH_AVPlayer_Create(void); 86 87 /** 88 * @brief Sets the playback source for the player. The corresponding source can be http url 89 * @syscap SystemCapability.Multimedia.Media.AVPlayer 90 * @param player Pointer to an OH_AVPlayer instance 91 * @param url Indicates the playback source. 92 * @return Function result code. 93 * {@link AV_ERR_OK} if the execution is successful. 94 * {@link AV_ERR_INVALID_VAL} if input player is nullptr, url is null or player setUrlSource failed. 95 * @since 11 96 * @version 1.0 97 */ 98 OH_AVErrCode OH_AVPlayer_SetURLSource(OH_AVPlayer *player, const char *url); 99 100 /** 101 * @brief Sets the playback media file descriptor source for the player. 102 * @syscap SystemCapability.Multimedia.Media.AVPlayer 103 * @param player Pointer to an OH_AVPlayer instance 104 * @param fd Indicates the file descriptor of media source. 105 * @param offset Indicates the offset of media source in file descriptor. 106 * @param size Indicates the size of media source. 107 * @return Function result code. 108 * {@link AV_ERR_OK} if the execution is successful. 109 * {@link AV_ERR_INVALID_VAL} if input player is nullptr or player setFdSource failed. 110 * @since 11 111 * @version 1.0 112 */ 113 OH_AVErrCode OH_AVPlayer_SetFDSource(OH_AVPlayer *player, int32_t fd, int64_t offset, int64_t size); 114 115 /** 116 * @brief Prepares the playback environment and buffers media data asynchronous. 117 * 118 * This function must be called after {@link SetSource}. 119 * 120 * @syscap SystemCapability.Multimedia.Media.AVPlayer 121 * @param player Pointer to an OH_AVPlayer instance 122 * @return Function result code. 123 * {@link AV_ERR_OK} if the execution is successful. 124 * {@link AV_ERR_INVALID_VAL} if input player is nullptr or player Prepare failed. 125 * @since 11 126 * @version 1.0 127 */ 128 OH_AVErrCode OH_AVPlayer_Prepare(OH_AVPlayer *player); 129 130 /** 131 * @brief Start playback. 132 * 133 * This function must be called after {@link Prepare}. If the player state is <b>Prepared</b>, 134 * this function is called to start playback. 135 * 136 * @syscap SystemCapability.Multimedia.Media.AVPlayer 137 * @param player Pointer to an OH_AVPlayer instance 138 * @return Function result code. 139 * {@link AV_ERR_OK} if the execution is successful. 140 * {@link AV_ERR_INVALID_VAL} if input player is nullptr or player Play failed. 141 * @since 11 142 * @version 1.0 143 */ 144 OH_AVErrCode OH_AVPlayer_Play(OH_AVPlayer *player); 145 146 /** 147 * @brief Pauses playback. 148 * @syscap SystemCapability.Multimedia.Media.AVPlayer 149 * @param player Pointer to an OH_AVPlayer instance 150 * @return Function result code. 151 * {@link AV_ERR_OK} if the execution is successful. 152 * {@link AV_ERR_INVALID_VAL} if input player is nullptr or player Pause failed. 153 * @since 11 154 * @version 1.0 155 */ 156 OH_AVErrCode OH_AVPlayer_Pause(OH_AVPlayer *player); 157 158 /** 159 * @brief Stop playback. 160 * @syscap SystemCapability.Multimedia.Media.AVPlayer 161 * @param player Pointer to an OH_AVPlayer instance 162 * @return Function result code. 163 * {@link AV_ERR_OK} if the execution is successful. 164 * {@link AV_ERR_INVALID_VAL} if input player is nullptr or player Stop failed. 165 * @since 11 166 * @version 1.0 167 */ 168 OH_AVErrCode OH_AVPlayer_Stop(OH_AVPlayer *player); 169 170 /** 171 * @brief Restores the player to the initial state. 172 * 173 * After the function is called, add a playback source by calling {@link SetSource}, 174 * call {@link Play} to start playback again after {@link Prepare} is called. 175 * 176 * @syscap SystemCapability.Multimedia.Media.AVPlayer 177 * @param player Pointer to an OH_AVPlayer instance 178 * @return Function result code. 179 * {@link AV_ERR_OK} if the execution is successful. 180 * {@link AV_ERR_INVALID_VAL} if input player is nullptr or player Reset failed. 181 * @since 11 182 * @version 1.0 183 */ 184 OH_AVErrCode OH_AVPlayer_Reset(OH_AVPlayer *player); 185 186 /** 187 * @brief Releases player resources async 188 * 189 * Asynchronous release guarantees the performance 190 * but cannot ensure whether the surfacebuffer is released. 191 * The caller needs to ensure the life cycle security of the surface 192 * 193 * @syscap SystemCapability.Multimedia.Media.AVPlayer 194 * @param player Pointer to an OH_AVPlayer instance 195 * @return Function result code. 196 * {@link AV_ERR_OK} if the execution is successful. 197 * {@link AV_ERR_INVALID_VAL} if input player is nullptr or player Release failed. 198 * @since 11 199 * @version 1.0 200 */ 201 OH_AVErrCode OH_AVPlayer_Release(OH_AVPlayer *player); 202 203 /** 204 * @brief Releases player resources sync 205 * 206 * Synchronous release ensures effective release of surfacebuffer 207 * but this interface will take a long time (when the engine is not idle state) 208 * requiring the caller to design an asynchronous mechanism by itself 209 * 210 * @syscap SystemCapability.Multimedia.Media.AVPlayer 211 * @param player Pointer to an OH_AVPlayer instance 212 * @return Function result code. 213 * {@link AV_ERR_OK} if the execution is successful. 214 * {@link AV_ERR_INVALID_VAL} if input player is nullptr or player ReleaseSync failed. 215 * @since 11 216 * @version 1.0 217 */ 218 OH_AVErrCode OH_AVPlayer_ReleaseSync(OH_AVPlayer *player); 219 220 /** 221 * @brief Sets the volume of the player. 222 * 223 * This function can be used during playback or pause. The value <b>0</b> indicates no sound, 224 * and <b>1</b> indicates the original volume. If no audio device is started or no audio 225 * stream exists, the value <b>-1</b> is returned. 226 * 227 * @syscap SystemCapability.Multimedia.Media.AVPlayer 228 * @param player Pointer to an OH_AVPlayer instance 229 * @param leftVolume Indicates the target volume of the left audio channel to set, 230 * ranging from 0 to 1. each step is 0.01. 231 * @param rightVolume Indicates the target volume of the right audio channel to set, 232 * ranging from 0 to 1. each step is 0.01. 233 * @return Function result code. 234 * {@link AV_ERR_OK} if the execution is successful. 235 * {@link AV_ERR_INVALID_VAL} if input player is nullptr or player SetVolume failed. 236 * @since 11 237 * @version 1.0 238 */ 239 OH_AVErrCode OH_AVPlayer_SetVolume(OH_AVPlayer *player, float leftVolume, float rightVolume); 240 241 /** 242 * @brief Changes the playback position. 243 * 244 * This function can be used during play or pause. 245 * 246 * @syscap SystemCapability.Multimedia.Media.AVPlayer 247 * @param player Pointer to an OH_AVPlayer instance 248 * @param mSeconds Indicates the target playback position, accurate to milliseconds. 249 * @param mode Indicates the player seek mode. For details, see {@link AVPlayerSeekMode}. 250 * @return Function result code. 251 * {@link AV_ERR_OK} if the execution is successful. 252 * {@link AV_ERR_INVALID_VAL} if input player is nullptr or player Seek failed. 253 * @since 11 254 * @version 1.0 255 */ 256 OH_AVErrCode OH_AVPlayer_Seek(OH_AVPlayer *player, int32_t mSeconds, AVPlayerSeekMode mode); 257 258 /** 259 * @brief Obtains the playback position, accurate to millisecond. 260 * @syscap SystemCapability.Multimedia.Media.AVPlayer 261 * @param player Pointer to an OH_AVPlayer instance 262 * @param currentTime Indicates the playback position. 263 * @return Function result code. 264 * {@link AV_ERR_OK} if the execution is successful. 265 * {@link AV_ERR_INVALID_VAL} if input player is nullptr or player GetCurrentTime failed. 266 * @since 11 267 * @version 1.0 268 */ 269 OH_AVErrCode OH_AVPlayer_GetCurrentTime(OH_AVPlayer *player, int32_t *currentTime); 270 271 /** 272 * @brief get the video width. 273 * @syscap SystemCapability.Multimedia.Media.AVPlayer 274 * @param player Pointer to an OH_AVPlayer instance 275 * @param videoWidth The video width 276 * @return Function result code. 277 * {@link AV_ERR_OK} if the execution is successful. 278 * {@link AV_ERR_INVALID_VAL} if input player is nullptr. 279 * @since 11 280 * @version 1.0 281 */ 282 OH_AVErrCode OH_AVPlayer_GetVideoWidth(OH_AVPlayer *player, int32_t *videoWidth); 283 284 /** 285 * @brief get the video height. 286 * @syscap SystemCapability.Multimedia.Media.AVPlayer 287 * @param player Pointer to an OH_AVPlayer instance 288 * @param videoHeight The video height 289 * @return Function result code. 290 * {@link AV_ERR_OK} if the execution is successful. 291 * {@link AV_ERR_INVALID_VAL} if input player is nullptr. 292 * @since 11 293 * @version 1.0 294 */ 295 OH_AVErrCode OH_AVPlayer_GetVideoHeight(OH_AVPlayer *player, int32_t *videoHeight); 296 297 /** 298 * @brief set the player playback rate 299 * @syscap SystemCapability.Multimedia.Media.AVPlayer 300 * @param player Pointer to an OH_AVPlayer instance 301 * @param speed the rate mode {@link AVPlaybackSpeed} which can set. 302 * @return Function result code. 303 * {@link AV_ERR_OK} if the execution is successful. 304 * {@link AV_ERR_INVALID_VAL} if input player is nullptr or player SetPlaybackSpeed failed. 305 * @since 11 306 * @version 1.0 307 */ 308 OH_AVErrCode OH_AVPlayer_SetPlaybackSpeed(OH_AVPlayer *player, AVPlaybackSpeed speed); 309 310 /** 311 * @brief get the current player playback rate 312 * @syscap SystemCapability.Multimedia.Media.AVPlayer 313 * @param player Pointer to an OH_AVPlayer instance 314 * @param speed the rate mode {@link AVPlaybackSpeed} which can get. 315 * @return Function result code. 316 * {@link AV_ERR_OK} if the execution is successful. 317 * {@link AV_ERR_INVALID_VAL} if input player is nullptr or player GetPlaybackSpeed failed. 318 * @since 11 319 * @version 1.0 320 */ 321 OH_AVErrCode OH_AVPlayer_GetPlaybackSpeed(OH_AVPlayer *player, AVPlaybackSpeed *speed); 322 323 /** 324 * @brief Set the renderer information of the player's audio renderer 325 * @param player Pointer to an OH_AVPlayer instance 326 * @param streamUsage The value {@link OH_AudioStream_Usage} used for the stream usage of the player audio render. 327 * @return Function result code. 328 * {@link AV_ERR_OK} if the execution is successful. 329 * {@link AV_ERR_INVALID_VAL} if input player is nullptr or streamUsage value is invalid. 330 * @since 12 331 * @version 1.0 332 */ 333 OH_AVErrCode OH_AVPlayer_SetAudioRendererInfo(OH_AVPlayer *player, OH_AudioStream_Usage streamUsage); 334 335 /** 336 * @brief Set the interruption mode of the player's audio stream 337 * @param player Pointer to an OH_AVPlayer instance 338 * @param interruptMode The value {@link OH_AudioInterrupt_Mode} used for the interruption mode of 339 * the player audio stream. 340 * @return Function result code. 341 * {@link AV_ERR_OK} if the execution is successful. 342 * {@link AV_ERR_INVALID_VAL} if input player is nullptr or interruptMode value is invalid. 343 * @since 12 344 * @version 1.0 345 */ 346 OH_AVErrCode OH_AVPlayer_SetAudioInterruptMode(OH_AVPlayer *player, OH_AudioInterrupt_Mode interruptMode); 347 348 /** 349 * @brief Set the effect mode of the player's audio stream 350 * @param player Pointer to an OH_AVPlayer instance 351 * @param effectMode The value {@link OH_AudioStream_AudioEffectMode} used for the effect mode of 352 * the player audio stream. 353 * @return Function result code. 354 * {@link AV_ERR_OK} if the execution is successful. 355 * {@link AV_ERR_INVALID_VAL} if input player is nullptr or effectMode value is invalid. 356 * @since 12 357 * @version 1.0 358 */ 359 OH_AVErrCode OH_AVPlayer_SetAudioEffectMode(OH_AVPlayer *player, OH_AudioStream_AudioEffectMode effectMode); 360 361 /** 362 * @brief set the bit rate use for hls player 363 * 364 * the playback bitrate expressed in bits per second, expressed in bits per second, 365 * which is only valid for HLS protocol network flow. By default, 366 * the player will select the appropriate bit rate and speed according to the network connection. 367 * report the effective bit rate linked list by "INFO_TYPE_BITRATE_COLLECT" 368 * set and select the specified bit rate, and select the bit rate that is less than and closest 369 * to the specified bit rate for playback. When ready, read it to query the currently selected bit rate. 370 * 371 * @syscap SystemCapability.Multimedia.Media.AVPlayer 372 * @param player Pointer to an OH_AVPlayer instance 373 * @param bitRate the bit rate, The unit is bps. 374 * @return Function result code. 375 * {@link AV_ERR_OK} if the execution is successful. 376 * {@link AV_ERR_INVALID_VAL} if input player is nullptr or player SelectBitRate failed. 377 * @since 11 378 * @version 1.0 379 */ 380 OH_AVErrCode OH_AVPlayer_SelectBitRate(OH_AVPlayer *player, uint32_t bitRate); 381 382 /** 383 * @brief Method to set the surface. 384 * @syscap SystemCapability.Multimedia.Media.AVPlayer 385 * @param player Pointer to an OH_AVPlayer instance 386 * @param window A pointer to a OHNativeWindow instance, see {@link OHNativeWindow} 387 * @return Function result code. 388 * {@link AV_ERR_OK} if the execution is successful. 389 * {@link AV_ERR_INVALID_VAL} if input player is nullptr, input window is nullptr, 390 * or player SetVideoSurface failed. 391 * @since 11 392 * @version 1.0 393 */ 394 OH_AVErrCode OH_AVPlayer_SetVideoSurface(OH_AVPlayer *player, OHNativeWindow *window); 395 396 /** 397 * @brief Obtains the total duration of media files, accurate to milliseconds. 398 * @syscap SystemCapability.Multimedia.Media.AVPlayer 399 * @param player Pointer to an OH_AVPlayer instance 400 * @param duration Indicates the total duration of media files. 401 * @return Function result code. 402 * {@link AV_ERR_OK} if the execution is successful. 403 * {@link AV_ERR_INVALID_VAL} if input player is nullptr or player GetDuration failed. 404 * @since 11 405 * @version 1.0 406 */ 407 OH_AVErrCode OH_AVPlayer_GetDuration(OH_AVPlayer *player, int32_t *duration); 408 409 /** 410 * @brief get current playback state. 411 * @syscap SystemCapability.Multimedia.Media.AVPlayer 412 * @param player Pointer to an OH_AVPlayer instance 413 * @param state the current playback state 414 * @return Function result code. 415 * {@link AV_ERR_OK} if the execution is successful. 416 * {@link AV_ERR_INVALID_VAL} if input player is nullptr. 417 * @since 11 418 * @version 1.0 419 */ 420 OH_AVErrCode OH_AVPlayer_GetState(OH_AVPlayer *player, AVPlayerState *state); 421 422 /** 423 * @brief Checks whether the player is playing. 424 * @syscap SystemCapability.Multimedia.Media.AVPlayer 425 * @param player Pointer to an OH_AVPlayer instance 426 * @return Returns true if the playback is playing; Return false if not or input player is nullptr. 427 * @since 11 428 * @version 1.0 429 */ 430 bool OH_AVPlayer_IsPlaying(OH_AVPlayer *player); 431 432 /** 433 * @brief Returns the value whether single looping is enabled or not . 434 * @syscap SystemCapability.Multimedia.Media.AVPlayer 435 * @param player Pointer to an OH_AVPlayer instance 436 * @return Returns true if the playback is single looping; Return false if not or input player is nullptr. 437 * @since 11 438 * @version 1.0 439 */ 440 bool OH_AVPlayer_IsLooping(OH_AVPlayer *player); 441 442 /** 443 * @brief Enables single looping of the media playback. 444 * @syscap SystemCapability.Multimedia.Media.AVPlayer 445 * @param player Pointer to an OH_AVPlayer instance 446 * @param loop The switch to set loop 447 * @return Function result code. 448 * {@link AV_ERR_OK} if the execution is successful. 449 * {@link AV_ERR_INVALID_VAL} if input player is nullptr or player SetLooping failed. 450 * @since 11 451 * @version 1.0 452 */ 453 OH_AVErrCode OH_AVPlayer_SetLooping(OH_AVPlayer *player, bool loop); 454 455 /** 456 * @brief Method to set player callback. 457 * @syscap SystemCapability.Multimedia.Media.AVPlayer 458 * @param player Pointer to an OH_AVPlayer instance 459 * @param callback object pointer. 460 * @return Function result code. 461 * {@link AV_ERR_OK} if the execution is successful. 462 * {@link AV_ERR_INVALID_VAL} if input player is nullptr, callback.onInfo or callback.onError is null, 463 * or player SetPlayerCallback failed. 464 * @since 11 465 * @deprecated since 12 466 * @useinstead {@link OH_AVPlayer_SetPlayerOnInfoCallback} {@link OH_AVPlayer_SetPlayerOnErrorCallback} 467 * @version 1.0 468 */ 469 OH_AVErrCode OH_AVPlayer_SetPlayerCallback(OH_AVPlayer *player, AVPlayerCallback callback); 470 471 /** 472 * @brief Select audio or subtitle track. 473 * 474 * By default, the first audio stream with data is played, and the subtitle track is not played. 475 * After the settings take effect, the original track will become invalid. Please set subtitles 476 * in prepared/playing/paused/completed state and set audio tracks in prepared state. 477 * 478 * @syscap SystemCapability.Multimedia.Media.AVPlayer 479 * @param player Pointer to an OH_AVPlayer instance 480 * @param index Track index 481 * @return Function result code. 482 * {@link AV_ERR_OK} if the execution is successful. 483 * {@link AV_ERR_INVALID_VAL} if input player is nullptr or player SelectTrack failed. 484 * @since 11 485 * @version 1.0 486 */ 487 OH_AVErrCode OH_AVPlayer_SelectTrack(OH_AVPlayer *player, int32_t index); 488 489 /** 490 * @brief Deselect the current audio or subtitle track. 491 * 492 * After audio is deselected, the default track will be played, and after subtitles are deselected, 493 * they will not be played. Please set subtitles in prepared/playing/paused/completed state and set 494 * audio tracks in prepared state. 495 * 496 * @syscap SystemCapability.Multimedia.Media.AVPlayer 497 * @param player Pointer to an OH_AVPlayer instance 498 * @param index Track index 499 * @return Function result code. 500 * {@link AV_ERR_OK} if the execution is successful. 501 * {@link AV_ERR_INVALID_VAL} if input player is nullptr or player DeselectTrack failed. 502 * @since 11 503 * @version 1.0 504 */ 505 OH_AVErrCode OH_AVPlayer_DeselectTrack(OH_AVPlayer *player, int32_t index); 506 507 /** 508 * @brief Obtain the currently effective track index. 509 * 510 * Please get it in the prepared/playing/paused/completed state. 511 * 512 * @syscap SystemCapability.Multimedia.Media.AVPlayer 513 * @param player Pointer to an OH_AVPlayer instance 514 * @param trackType Media type. 515 * @param index Track index 516 * @return Function result code. 517 * {@link AV_ERR_OK} if the execution is successful. 518 * {@link AV_ERR_INVALID_VAL} if input player is nullptr or player GetCurrentTrack failed. 519 * @since 11 520 * @version 1.0 521 */ 522 OH_AVErrCode OH_AVPlayer_GetCurrentTrack(OH_AVPlayer *player, int32_t trackType, int32_t *index); 523 524 /** 525 * @brief Method to set player media key system info callback. 526 * @syscap SystemCapability.Multimedia.Media.AVPlayer 527 * @param player Pointer to an OH_AVPlayer instance 528 * @param callback object pointer. 529 * @return Function result code. 530 * {@link AV_ERR_OK} if the execution is successful. 531 * {@link AV_ERR_INVALID_VAL} if input player is nullptr, MediaKeySystemInfoCallback is null 532 * player SetDrmSystemInfoCallback failed, SetDrmSystemInfoCallback failed or SetDrmSystemInfoCallback failed. 533 * @since 12 534 * @version 1.0 535 */ 536 OH_AVErrCode OH_AVPlayer_SetMediaKeySystemInfoCallback(OH_AVPlayer *player, 537 Player_MediaKeySystemInfoCallback callback); 538 539 /** 540 * @brief Obtains media key system info to create media key session. 541 * @syscap SystemCapability.Multimedia.Media.AVPlayer 542 * @param player Pointer to an OH_AVPlayer instance 543 * @param mediaKeySystemInfo Media key system info. 544 * @return Function result code. 545 * {@link AV_ERR_OK} if the execution is successful. 546 * {@link AV_ERR_INVALID_VAL} if input player is nullptr or no memory. 547 * @since 12 548 * @version 1.0 549 */ 550 OH_AVErrCode OH_AVPlayer_GetMediaKeySystemInfo(OH_AVPlayer *player, DRM_MediaKeySystemInfo *mediaKeySystemInfo); 551 552 /** 553 * @brief Set decryption info. 554 * 555 * @syscap SystemCapability.Multimedia.Media.AVPlayer 556 * @param player Pointer to an OH_AVPlayer instance 557 * @param mediaKeySession A media key session instance with decryption function. 558 * @param secureVideoPath Require secure decoder or not. 559 * @return Function result code. 560 * {@link AV_ERR_OK} if the execution is successful. 561 * {@link AV_ERR_INVALID_VAL} if input player is nullptr or player SetDecryptConfig failed. 562 * @since 12 563 * @version 1.0 564 */ 565 OH_AVErrCode OH_AVPlayer_SetDecryptionConfig(OH_AVPlayer *player, MediaKeySession *mediaKeySession, 566 bool secureVideoPath); 567 568 /** 569 * @brief Method to set player information notify callback. 570 * @syscap SystemCapability.Multimedia.Media.AVPlayer 571 * @param player Pointer to an OH_AVPlayer instance. 572 * @param callback Pointer to callback function, nullptr indicates unregister callback. 573 * @param userData Pointer to user specific data. 574 * @return Function result code. 575 * {@link AV_ERR_OK} if the execution is successful. 576 * {@link AV_ERR_INVALID_VAL} if input player is null or player SetOnInfoCallback failed. 577 * @since 12 578 */ 579 OH_AVErrCode OH_AVPlayer_SetOnInfoCallback(OH_AVPlayer *player, OH_AVPlayerOnInfoCallback callback, void *userData); 580 581 /** 582 * @brief Method to set player error callback. 583 * @syscap SystemCapability.Multimedia.Media.AVPlayer 584 * @param player Pointer to an OH_AVPlayer instance. 585 * @param callback Pointer to callback function, nullptr indicates unregister callback. 586 * @param userData Pointer to user specific data. 587 * @return Function result code. 588 * {@link AV_ERR_OK} if the execution is successful. 589 * {@link AV_ERR_INVALID_VAL} if input player is null or player SetOnErrorCallback failed. 590 * @since 12 591 */ 592 OH_AVErrCode OH_AVPlayer_SetOnErrorCallback(OH_AVPlayer *player, OH_AVPlayerOnErrorCallback callback, void *userData); 593 594 #ifdef __cplusplus 595 } 596 #endif 597 598 #endif // MULTIMEDIA_PLAYER_FRAMEWORK_NATIVE_AVPLAYER_H 599