17777dab0Sopenharmony_ci/* 27777dab0Sopenharmony_ci * Copyright (c) 2024 Huawei Device Co., Ltd. 37777dab0Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 47777dab0Sopenharmony_ci * you may not use this file except in compliance with the License. 57777dab0Sopenharmony_ci * You may obtain a copy of the License at 67777dab0Sopenharmony_ci * 77777dab0Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 87777dab0Sopenharmony_ci * 97777dab0Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 107777dab0Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 117777dab0Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 127777dab0Sopenharmony_ci * See the License for the specific language governing permissions and 137777dab0Sopenharmony_ci * limitations under the License. 147777dab0Sopenharmony_ci */ 157777dab0Sopenharmony_ci 167777dab0Sopenharmony_ci/** 177777dab0Sopenharmony_ci * @addtogroup OHAVSession 187777dab0Sopenharmony_ci * @{ 197777dab0Sopenharmony_ci * 207777dab0Sopenharmony_ci * @brief Provide the definition of the C interface for the avsession module. 217777dab0Sopenharmony_ci * 227777dab0Sopenharmony_ci * @syscap SystemCapability.Multimedia.AVSession.Core 237777dab0Sopenharmony_ci * 247777dab0Sopenharmony_ci * @since 13 257777dab0Sopenharmony_ci * @version 1.0 267777dab0Sopenharmony_ci */ 277777dab0Sopenharmony_ci 287777dab0Sopenharmony_ci/** 297777dab0Sopenharmony_ci * @file native_avsession.h 307777dab0Sopenharmony_ci * 317777dab0Sopenharmony_ci * @brief Declare avsession interface. 327777dab0Sopenharmony_ci * 337777dab0Sopenharmony_ci * @library libohavsession.so 347777dab0Sopenharmony_ci * @syscap SystemCapability.Multimedia.AVSession.Core 357777dab0Sopenharmony_ci * @kit AVSessionKit 367777dab0Sopenharmony_ci * @since 13 377777dab0Sopenharmony_ci * @version 1.0 387777dab0Sopenharmony_ci */ 397777dab0Sopenharmony_ci 407777dab0Sopenharmony_ci#ifndef NATIVE_AVSESSION_H 417777dab0Sopenharmony_ci#define NATIVE_AVSESSION_H 427777dab0Sopenharmony_ci 437777dab0Sopenharmony_ci#include <stdint.h> 447777dab0Sopenharmony_ci#include "native_avsession_errors.h" 457777dab0Sopenharmony_ci#include "native_avmetadata.h" 467777dab0Sopenharmony_ci 477777dab0Sopenharmony_ci#ifdef __cplusplus 487777dab0Sopenharmony_ciextern "C" { 497777dab0Sopenharmony_ci#endif 507777dab0Sopenharmony_ci 517777dab0Sopenharmony_ci/** 527777dab0Sopenharmony_ci * @brief Enum for avsession type. 537777dab0Sopenharmony_ci * 547777dab0Sopenharmony_ci * @since 13 557777dab0Sopenharmony_ci * @version 1.0 567777dab0Sopenharmony_ci */ 577777dab0Sopenharmony_citypedef enum { 587777dab0Sopenharmony_ci /** 597777dab0Sopenharmony_ci * @brief audio session type. 607777dab0Sopenharmony_ci */ 617777dab0Sopenharmony_ci SESSION_TYPE_AUDIO = 0, 627777dab0Sopenharmony_ci 637777dab0Sopenharmony_ci /** 647777dab0Sopenharmony_ci * @brief video session type. 657777dab0Sopenharmony_ci */ 667777dab0Sopenharmony_ci SESSION_TYPE_VIDEO = 1, 677777dab0Sopenharmony_ci 687777dab0Sopenharmony_ci /** 697777dab0Sopenharmony_ci * @brief voice call session type. 707777dab0Sopenharmony_ci */ 717777dab0Sopenharmony_ci SESSION_TYPE_VOICE_CALL = 2, 727777dab0Sopenharmony_ci 737777dab0Sopenharmony_ci /** 747777dab0Sopenharmony_ci * @brief video call session type. 757777dab0Sopenharmony_ci */ 767777dab0Sopenharmony_ci SESSION_TYPE_VIDEO_CALL = 3 777777dab0Sopenharmony_ci} AVSession_Type; 787777dab0Sopenharmony_ci 797777dab0Sopenharmony_ci/** 807777dab0Sopenharmony_ci * @brief Enum for playback state. 817777dab0Sopenharmony_ci * 827777dab0Sopenharmony_ci * @since 13 837777dab0Sopenharmony_ci * @version 1.0 847777dab0Sopenharmony_ci */ 857777dab0Sopenharmony_citypedef enum { 867777dab0Sopenharmony_ci /** 877777dab0Sopenharmony_ci * @brief Initial state. 887777dab0Sopenharmony_ci */ 897777dab0Sopenharmony_ci PLAYBACK_STATE_INITIAL = 0, 907777dab0Sopenharmony_ci 917777dab0Sopenharmony_ci /** 927777dab0Sopenharmony_ci * @brief Preparing state. Indicates that the media file is not ready to play. 937777dab0Sopenharmony_ci */ 947777dab0Sopenharmony_ci PLAYBACK_STATE_PREPARING = 1, 957777dab0Sopenharmony_ci 967777dab0Sopenharmony_ci /** 977777dab0Sopenharmony_ci * @brief Playing state. 987777dab0Sopenharmony_ci */ 997777dab0Sopenharmony_ci PLAYBACK_STATE_PLAYING = 2, 1007777dab0Sopenharmony_ci 1017777dab0Sopenharmony_ci /** 1027777dab0Sopenharmony_ci * @brief Pause state. 1037777dab0Sopenharmony_ci */ 1047777dab0Sopenharmony_ci PLAYBACK_STATE_PAUSED = 3, 1057777dab0Sopenharmony_ci 1067777dab0Sopenharmony_ci /** 1077777dab0Sopenharmony_ci * @brief Fast forward state. 1087777dab0Sopenharmony_ci */ 1097777dab0Sopenharmony_ci PLAYBACK_STATE_FAST_FORWARDING = 4, 1107777dab0Sopenharmony_ci 1117777dab0Sopenharmony_ci /** 1127777dab0Sopenharmony_ci * @brief Rewind state. 1137777dab0Sopenharmony_ci */ 1147777dab0Sopenharmony_ci PLAYBACK_STATE_REWINDED = 5, 1157777dab0Sopenharmony_ci 1167777dab0Sopenharmony_ci /** 1177777dab0Sopenharmony_ci * @brief Stopped state. 1187777dab0Sopenharmony_ci */ 1197777dab0Sopenharmony_ci PLAYBACK_STATE_STOPPED = 6, 1207777dab0Sopenharmony_ci 1217777dab0Sopenharmony_ci /** 1227777dab0Sopenharmony_ci * @brief Complete state. 1237777dab0Sopenharmony_ci */ 1247777dab0Sopenharmony_ci PLAYBACK_STATE_COMPLETED = 7, 1257777dab0Sopenharmony_ci 1267777dab0Sopenharmony_ci /** 1277777dab0Sopenharmony_ci * @brief Release state. 1287777dab0Sopenharmony_ci */ 1297777dab0Sopenharmony_ci PLAYBACK_STATE_RELEASED = 8, 1307777dab0Sopenharmony_ci 1317777dab0Sopenharmony_ci /** 1327777dab0Sopenharmony_ci * @brief Error state. 1337777dab0Sopenharmony_ci */ 1347777dab0Sopenharmony_ci PLAYBACK_STATE_ERROR = 9, 1357777dab0Sopenharmony_ci 1367777dab0Sopenharmony_ci /** 1377777dab0Sopenharmony_ci * @brief Idle state. 1387777dab0Sopenharmony_ci */ 1397777dab0Sopenharmony_ci PLAYBACK_STATE_IDLE = 10, 1407777dab0Sopenharmony_ci 1417777dab0Sopenharmony_ci /** 1427777dab0Sopenharmony_ci * @brief Buffering state. 1437777dab0Sopenharmony_ci */ 1447777dab0Sopenharmony_ci PLAYBACK_STATE_BUFFERING = 11, 1457777dab0Sopenharmony_ci 1467777dab0Sopenharmony_ci /** 1477777dab0Sopenharmony_ci * @brief Max state. 1487777dab0Sopenharmony_ci */ 1497777dab0Sopenharmony_ci PLAYBACK_STATE_MAX = 12, 1507777dab0Sopenharmony_ci} AVSession_PlaybackState; 1517777dab0Sopenharmony_ci 1527777dab0Sopenharmony_ci/** 1537777dab0Sopenharmony_ci * @brief Defines the playback position. 1547777dab0Sopenharmony_ci * 1557777dab0Sopenharmony_ci * @since 13 1567777dab0Sopenharmony_ci */ 1577777dab0Sopenharmony_citypedef struct AVSession_PlaybackPosition { 1587777dab0Sopenharmony_ci /** 1597777dab0Sopenharmony_ci * @brief Elapsed time(position) of this media set by the app. 1607777dab0Sopenharmony_ci */ 1617777dab0Sopenharmony_ci int64_t elapsedTime; 1627777dab0Sopenharmony_ci 1637777dab0Sopenharmony_ci /** 1647777dab0Sopenharmony_ci * @brief Record the system time when elapsedTime is set. 1657777dab0Sopenharmony_ci */ 1667777dab0Sopenharmony_ci int64_t updateTime; 1677777dab0Sopenharmony_ci} AVSession_PlaybackPosition; 1687777dab0Sopenharmony_ci 1697777dab0Sopenharmony_ci/** 1707777dab0Sopenharmony_ci * @brief Defines the playback mode. 1717777dab0Sopenharmony_ci * 1727777dab0Sopenharmony_ci * @since 13 1737777dab0Sopenharmony_ci */ 1747777dab0Sopenharmony_citypedef enum { 1757777dab0Sopenharmony_ci /** 1767777dab0Sopenharmony_ci * @brief sequential playback mode 1777777dab0Sopenharmony_ci */ 1787777dab0Sopenharmony_ci LOOP_MODE_SEQUENCE = 0, 1797777dab0Sopenharmony_ci 1807777dab0Sopenharmony_ci /** 1817777dab0Sopenharmony_ci * @brief single playback mode 1827777dab0Sopenharmony_ci */ 1837777dab0Sopenharmony_ci LOOP_MODE_SINGLE = 1, 1847777dab0Sopenharmony_ci 1857777dab0Sopenharmony_ci /** 1867777dab0Sopenharmony_ci * @brief list playback mode 1877777dab0Sopenharmony_ci */ 1887777dab0Sopenharmony_ci LOOP_MODE_LIST = 2, 1897777dab0Sopenharmony_ci 1907777dab0Sopenharmony_ci /** 1917777dab0Sopenharmony_ci * @brief shuffle playback mode 1927777dab0Sopenharmony_ci */ 1937777dab0Sopenharmony_ci LOOP_MODE_SHUFFLE = 3, 1947777dab0Sopenharmony_ci 1957777dab0Sopenharmony_ci /** 1967777dab0Sopenharmony_ci * @brief custom playback mode 1977777dab0Sopenharmony_ci */ 1987777dab0Sopenharmony_ci LOOP_MODE_CUSTOM = 4, 1997777dab0Sopenharmony_ci} AVSession_LoopMode; 2007777dab0Sopenharmony_ci 2017777dab0Sopenharmony_ci/** 2027777dab0Sopenharmony_ci * @brief Enum for different control command. 2037777dab0Sopenharmony_ci * 2047777dab0Sopenharmony_ci * @since 13 2057777dab0Sopenharmony_ci * @version 1.0 2067777dab0Sopenharmony_ci */ 2077777dab0Sopenharmony_citypedef enum AVSession_ControlCommand { 2087777dab0Sopenharmony_ci /** 2097777dab0Sopenharmony_ci * @brief invalid control command 2107777dab0Sopenharmony_ci */ 2117777dab0Sopenharmony_ci CONTROL_CMD_INVALID = -1, 2127777dab0Sopenharmony_ci 2137777dab0Sopenharmony_ci /** 2147777dab0Sopenharmony_ci * @brief play command 2157777dab0Sopenharmony_ci */ 2167777dab0Sopenharmony_ci CONTROL_CMD_PLAY = 0, 2177777dab0Sopenharmony_ci 2187777dab0Sopenharmony_ci /** 2197777dab0Sopenharmony_ci * @brief pause command 2207777dab0Sopenharmony_ci */ 2217777dab0Sopenharmony_ci CONTROL_CMD_PAUSE = 1, 2227777dab0Sopenharmony_ci 2237777dab0Sopenharmony_ci /** 2247777dab0Sopenharmony_ci * @brief stop command 2257777dab0Sopenharmony_ci */ 2267777dab0Sopenharmony_ci CONTROL_CMD_STOP = 2, 2277777dab0Sopenharmony_ci 2287777dab0Sopenharmony_ci /** 2297777dab0Sopenharmony_ci * @brief playnext command 2307777dab0Sopenharmony_ci */ 2317777dab0Sopenharmony_ci CONTROL_CMD_PLAY_NEXT = 3, 2327777dab0Sopenharmony_ci 2337777dab0Sopenharmony_ci /** 2347777dab0Sopenharmony_ci * @brief playprevious command 2357777dab0Sopenharmony_ci */ 2367777dab0Sopenharmony_ci CONTROL_CMD_PLAY_PREVIOUS = 4, 2377777dab0Sopenharmony_ci} AVSession_ControlCommand; 2387777dab0Sopenharmony_ci 2397777dab0Sopenharmony_ci/** 2407777dab0Sopenharmony_ci * @brief Defines enumeration of avsession callback result. 2417777dab0Sopenharmony_ci * 2427777dab0Sopenharmony_ci * @since 13 2437777dab0Sopenharmony_ci */ 2447777dab0Sopenharmony_citypedef enum { 2457777dab0Sopenharmony_ci /** 2467777dab0Sopenharmony_ci * @brief Result of avsession callabck is success. 2477777dab0Sopenharmony_ci */ 2487777dab0Sopenharmony_ci AVSESSION_CALLBACK_RESULT_SUCCESS = 0, 2497777dab0Sopenharmony_ci 2507777dab0Sopenharmony_ci /** 2517777dab0Sopenharmony_ci * @brief Result of avsession callabck failed. 2527777dab0Sopenharmony_ci */ 2537777dab0Sopenharmony_ci AVSESSION_CALLBACK_RESULT_FAILURE = -1, 2547777dab0Sopenharmony_ci} AVSessionCallback_Result; 2557777dab0Sopenharmony_ci 2567777dab0Sopenharmony_ci/** 2577777dab0Sopenharmony_ci * @brief AVSession object 2587777dab0Sopenharmony_ci * 2597777dab0Sopenharmony_ci * A pointer can be created using {@link OH_AVSession_Create} method. 2607777dab0Sopenharmony_ci * 2617777dab0Sopenharmony_ci * @since 13 2627777dab0Sopenharmony_ci * @version 1.0 2637777dab0Sopenharmony_ci */ 2647777dab0Sopenharmony_citypedef struct OH_AVSession OH_AVSession; 2657777dab0Sopenharmony_ci 2667777dab0Sopenharmony_ci/** 2677777dab0Sopenharmony_ci * @brief Declaring the callback struct for playback command 2687777dab0Sopenharmony_ci * 2697777dab0Sopenharmony_ci * @since 13 2707777dab0Sopenharmony_ci * @version 1.0 2717777dab0Sopenharmony_ci */ 2727777dab0Sopenharmony_citypedef AVSessionCallback_Result (*OH_AVSessionCallback_OnCommand)(OH_AVSession* session, 2737777dab0Sopenharmony_ci AVSession_ControlCommand command, void* userData); 2747777dab0Sopenharmony_ci 2757777dab0Sopenharmony_ci/** 2767777dab0Sopenharmony_ci * @brief Declaring the callback struct for forward command 2777777dab0Sopenharmony_ci * 2787777dab0Sopenharmony_ci * @since 13 2797777dab0Sopenharmony_ci * @version 1.0 2807777dab0Sopenharmony_ci */ 2817777dab0Sopenharmony_citypedef AVSessionCallback_Result (*OH_AVSessionCallback_OnFastForward)(OH_AVSession* session, 2827777dab0Sopenharmony_ci uint32_t seekTime, void* userData); 2837777dab0Sopenharmony_ci 2847777dab0Sopenharmony_ci/** 2857777dab0Sopenharmony_ci * @brief Declaring the callback struct for rewind command 2867777dab0Sopenharmony_ci * 2877777dab0Sopenharmony_ci * @since 13 2887777dab0Sopenharmony_ci * @version 1.0 2897777dab0Sopenharmony_ci */ 2907777dab0Sopenharmony_citypedef AVSessionCallback_Result (*OH_AVSessionCallback_OnRewind)(OH_AVSession* session, 2917777dab0Sopenharmony_ci uint32_t seekTime, void* userData); 2927777dab0Sopenharmony_ci 2937777dab0Sopenharmony_ci/** 2947777dab0Sopenharmony_ci * @brief Declaring the callback struct for seek command 2957777dab0Sopenharmony_ci * 2967777dab0Sopenharmony_ci * @since 13 2977777dab0Sopenharmony_ci * @version 1.0 2987777dab0Sopenharmony_ci */ 2997777dab0Sopenharmony_citypedef AVSessionCallback_Result (*OH_AVSessionCallback_OnSeek)(OH_AVSession* session, 3007777dab0Sopenharmony_ci uint64_t seekTime, void* userData); 3017777dab0Sopenharmony_ci 3027777dab0Sopenharmony_ci/** 3037777dab0Sopenharmony_ci * @brief Declaring the callback struct for set loop mode command 3047777dab0Sopenharmony_ci * 3057777dab0Sopenharmony_ci * @since 13 3067777dab0Sopenharmony_ci * @version 1.0 3077777dab0Sopenharmony_ci */ 3087777dab0Sopenharmony_citypedef AVSessionCallback_Result (*OH_AVSessionCallback_OnSetLoopMode)(OH_AVSession* session, 3097777dab0Sopenharmony_ci AVSession_LoopMode curLoopMode, void* userData); 3107777dab0Sopenharmony_ci 3117777dab0Sopenharmony_ci/** 3127777dab0Sopenharmony_ci * @brief Declaring the callback struct for toggle favorite command 3137777dab0Sopenharmony_ci * 3147777dab0Sopenharmony_ci * @since 13 3157777dab0Sopenharmony_ci * @version 1.0 3167777dab0Sopenharmony_ci */ 3177777dab0Sopenharmony_citypedef AVSessionCallback_Result (*OH_AVSessionCallback_OnToggleFavorite)(OH_AVSession* session, 3187777dab0Sopenharmony_ci const char* assetId, void* userData); 3197777dab0Sopenharmony_ci 3207777dab0Sopenharmony_ci/** 3217777dab0Sopenharmony_ci * @brief Request to create the avsession. 3227777dab0Sopenharmony_ci * 3237777dab0Sopenharmony_ci * @param sessionType The session type to set 3247777dab0Sopenharmony_ci * @param sessionTag The session tag set by the application 3257777dab0Sopenharmony_ci * @param bundleName The bundle name to set 3267777dab0Sopenharmony_ci * @param abilityName The abilityName name to set 3277777dab0Sopenharmony_ci * @param avsession Pointer to a viriable to receive the OH_AVSession 3287777dab0Sopenharmony_ci * @return Function result code: 3297777dab0Sopenharmony_ci * {@link AV_SESSION_ERR_SUCCESS} If the execution is successful. 3307777dab0Sopenharmony_ci * {@link AV_SESSION_ERR_INVALID_PARAMETER}: 3317777dab0Sopenharmony_ci * 1. The param of sessionType is invalid. 3327777dab0Sopenharmony_ci * 2. The param of sessionTag is nullptr. 3337777dab0Sopenharmony_ci * 3. The param of bundleName is nullptr. 3347777dab0Sopenharmony_ci * 4. The param of abilityName is nullptr. 3357777dab0Sopenharmony_ci * 5. The param of avsession is nullptr. 3367777dab0Sopenharmony_ci * @since 13 3377777dab0Sopenharmony_ci */ 3387777dab0Sopenharmony_ciAVSession_ErrCode OH_AVSession_Create(AVSession_Type sessionType, const char* sessionTag, 3397777dab0Sopenharmony_ci const char* bundleName, const char* abilityName, OH_AVSession** avsession); 3407777dab0Sopenharmony_ci 3417777dab0Sopenharmony_ci/** 3427777dab0Sopenharmony_ci * @brief Request to destory the avsession. 3437777dab0Sopenharmony_ci * 3447777dab0Sopenharmony_ci * @param avsession The avsession instance pointer 3457777dab0Sopenharmony_ci * @return Function result code: 3467777dab0Sopenharmony_ci * {@link AV_SESSION_ERR_SUCCESS} If the execution is successful. 3477777dab0Sopenharmony_ci * {@link AV_SESSION_ERR_INVALID_PARAMETER} The param of avsession is nullptr. 3487777dab0Sopenharmony_ci * @since 13 3497777dab0Sopenharmony_ci */ 3507777dab0Sopenharmony_ciAVSession_ErrCode OH_AVSession_Destroy(OH_AVSession* avsession); 3517777dab0Sopenharmony_ci 3527777dab0Sopenharmony_ci/** 3537777dab0Sopenharmony_ci * @brief Activate the avsession. 3547777dab0Sopenharmony_ci * 3557777dab0Sopenharmony_ci * @param avsession The avsession instance pointer 3567777dab0Sopenharmony_ci * @return Function result code: 3577777dab0Sopenharmony_ci * {@link AV_SESSION_ERR_SUCCESS} If the execution is successful. 3587777dab0Sopenharmony_ci * {@link AV_SESSION_ERR_SERVICE_EXCEPTION} Internal server error. 3597777dab0Sopenharmony_ci * {@link AV_SESSION_ERR_INVALID_PARAMETER} The param of avsession is nullptr. 3607777dab0Sopenharmony_ci * @since 13 3617777dab0Sopenharmony_ci */ 3627777dab0Sopenharmony_ciAVSession_ErrCode OH_AVSession_Activate(OH_AVSession* avsession); 3637777dab0Sopenharmony_ci 3647777dab0Sopenharmony_ci/** 3657777dab0Sopenharmony_ci * @brief Deactivate the avsession. 3667777dab0Sopenharmony_ci * 3677777dab0Sopenharmony_ci * @param avsession The avsession instance pointer 3687777dab0Sopenharmony_ci * @return Function result code: 3697777dab0Sopenharmony_ci * {@link AV_SESSION_ERR_SUCCESS} If the execution is successful. 3707777dab0Sopenharmony_ci * {@link AV_SESSION_ERR_SERVICE_EXCEPTION} Internal server error. 3717777dab0Sopenharmony_ci * {@link AV_SESSION_ERR_INVALID_PARAMETER} The param of avsession is nullptr. 3727777dab0Sopenharmony_ci * @since 13 3737777dab0Sopenharmony_ci */ 3747777dab0Sopenharmony_ciAVSession_ErrCode OH_AVSession_Deactivate(OH_AVSession* avsession); 3757777dab0Sopenharmony_ci 3767777dab0Sopenharmony_ci/** 3777777dab0Sopenharmony_ci * @brief Get session type. 3787777dab0Sopenharmony_ci * 3797777dab0Sopenharmony_ci * @param avsession The avsession instance pointer 3807777dab0Sopenharmony_ci * @param sessionType The returned session type 3817777dab0Sopenharmony_ci * @return Function result code: 3827777dab0Sopenharmony_ci * {@link AV_SESSION_ERR_SUCCESS} If the execution is successful. 3837777dab0Sopenharmony_ci * {@link AV_SESSION_ERR_SERVICE_EXCEPTION} Internal server error. 3847777dab0Sopenharmony_ci * {@link AV_SESSION_ERR_INVALID_PARAMETER} 3857777dab0Sopenharmony_ci * 1. The param of avsession is invalid. 3867777dab0Sopenharmony_ci * 2. The param of sessionType is nullptr. 3877777dab0Sopenharmony_ci * @since 13 3887777dab0Sopenharmony_ci */ 3897777dab0Sopenharmony_ciAVSession_ErrCode OH_AVSession_GetSessionType(OH_AVSession* avsession, AVSession_Type* sessionType); 3907777dab0Sopenharmony_ci 3917777dab0Sopenharmony_ci/** 3927777dab0Sopenharmony_ci * @brief Get session id. 3937777dab0Sopenharmony_ci * 3947777dab0Sopenharmony_ci * @param avsession The avsession instance pointer 3957777dab0Sopenharmony_ci * @param sessionId The returned session id 3967777dab0Sopenharmony_ci * @return Function result code: 3977777dab0Sopenharmony_ci * {@link AV_SESSION_ERR_SUCCESS} If the execution is successful. 3987777dab0Sopenharmony_ci * {@link AV_SESSION_ERR_INVALID_PARAMETER} 3997777dab0Sopenharmony_ci * 1. The param of avsession is nullptr. 4007777dab0Sopenharmony_ci * 2. The param of sessionId is nullptr. 4017777dab0Sopenharmony_ci * @since 13 4027777dab0Sopenharmony_ci */ 4037777dab0Sopenharmony_ciAVSession_ErrCode OH_AVSession_GetSessionId(OH_AVSession* avsession, const char** sessionId); 4047777dab0Sopenharmony_ci 4057777dab0Sopenharmony_ci/** 4067777dab0Sopenharmony_ci * @brief Request to set av metadata. 4077777dab0Sopenharmony_ci * 4087777dab0Sopenharmony_ci * @param avsession The avsession instance pointer 4097777dab0Sopenharmony_ci * @param avmetadata The metadata to set 4107777dab0Sopenharmony_ci * @return Function result code: 4117777dab0Sopenharmony_ci * {@link AV_SESSION_ERR_SUCCESS} If the execution is successful. 4127777dab0Sopenharmony_ci * {@link AV_SESSION_ERR_SERVICE_EXCEPTION} Internal server error. 4137777dab0Sopenharmony_ci * {@link AV_SESSION_ERR_INVALID_PARAMETER} 4147777dab0Sopenharmony_ci * 1. The param of avsession is nullptr. 4157777dab0Sopenharmony_ci * 2. The param of avmetadata is nullptr. 4167777dab0Sopenharmony_ci * @since 13 4177777dab0Sopenharmony_ci */ 4187777dab0Sopenharmony_ciAVSession_ErrCode OH_AVSession_SetAVMetadata(OH_AVSession* avsession, OH_AVMetadata* avmetadata); 4197777dab0Sopenharmony_ci 4207777dab0Sopenharmony_ci/** 4217777dab0Sopenharmony_ci * @brief Request to set av playbackstate. 4227777dab0Sopenharmony_ci * 4237777dab0Sopenharmony_ci * @param avsession The avsession instance pointer 4247777dab0Sopenharmony_ci * @param playbackState The playbackState to set 4257777dab0Sopenharmony_ci * @return Function result code: 4267777dab0Sopenharmony_ci * {@link AV_SESSION_ERR_SUCCESS} If the execution is successful. 4277777dab0Sopenharmony_ci * {@link AV_SESSION_ERR_SERVICE_EXCEPTION} Internal server error. 4287777dab0Sopenharmony_ci * {@link AV_SESSION_ERR_INVALID_PARAMETER} 4297777dab0Sopenharmony_ci * 1. The param of avsession is nullptr. 4307777dab0Sopenharmony_ci * 2. The param of playbackState is invalid. 4317777dab0Sopenharmony_ci * @since 13 4327777dab0Sopenharmony_ci */ 4337777dab0Sopenharmony_ciAVSession_ErrCode OH_AVSession_SetPlaybackState(OH_AVSession* avsession, 4347777dab0Sopenharmony_ci AVSession_PlaybackState playbackState); 4357777dab0Sopenharmony_ci 4367777dab0Sopenharmony_ci/** 4377777dab0Sopenharmony_ci * @brief Request to set playback position. 4387777dab0Sopenharmony_ci * 4397777dab0Sopenharmony_ci * @param avsession The avsession instance pointer 4407777dab0Sopenharmony_ci * @param playbackPosition The playbackPosition to set 4417777dab0Sopenharmony_ci * @return Function result code: 4427777dab0Sopenharmony_ci * {@link AV_SESSION_ERR_SUCCESS} If the execution is successful. 4437777dab0Sopenharmony_ci * {@link AV_SESSION_ERR_SERVICE_EXCEPTION} Internal server error. 4447777dab0Sopenharmony_ci * {@link AV_SESSION_ERR_INVALID_PARAMETER} 4457777dab0Sopenharmony_ci * 1. The param of avsession is nullptr. 4467777dab0Sopenharmony_ci * 2. The param of playbackPosition is nullptr. 4477777dab0Sopenharmony_ci * @since 13 4487777dab0Sopenharmony_ci */ 4497777dab0Sopenharmony_ciAVSession_ErrCode OH_AVSession_SetPlaybackPosition(OH_AVSession* avsession, 4507777dab0Sopenharmony_ci AVSession_PlaybackPosition* playbackPosition); 4517777dab0Sopenharmony_ci 4527777dab0Sopenharmony_ci/** 4537777dab0Sopenharmony_ci * @brief Request to set favorite state. 4547777dab0Sopenharmony_ci * 4557777dab0Sopenharmony_ci * @param avsession The avsession instance pointer 4567777dab0Sopenharmony_ci * @param favorite true means making the resource to be liked, false means dislike. 4577777dab0Sopenharmony_ci * @return Function result code: 4587777dab0Sopenharmony_ci * {@link AV_SESSION_ERR_SUCCESS} If the execution is successful. 4597777dab0Sopenharmony_ci * {@link AV_SESSION_ERR_SERVICE_EXCEPTION} Internal server error. 4607777dab0Sopenharmony_ci * {@link AV_SESSION_ERR_INVALID_PARAMETER} The param of avsession is nullptr. 4617777dab0Sopenharmony_ci * @since 13 4627777dab0Sopenharmony_ci */ 4637777dab0Sopenharmony_ciAVSession_ErrCode OH_AVSession_SetFavorite(OH_AVSession* avsession, bool favorite); 4647777dab0Sopenharmony_ci 4657777dab0Sopenharmony_ci/** 4667777dab0Sopenharmony_ci * @brief Request to set loop mode. 4677777dab0Sopenharmony_ci * 4687777dab0Sopenharmony_ci * @param avsession The avsession instance pointer 4697777dab0Sopenharmony_ci * @param loopMode The loopmode to be set for playback. 4707777dab0Sopenharmony_ci * @return Function result code: 4717777dab0Sopenharmony_ci * {@link AV_SESSION_ERR_SUCCESS} If the execution is successful. 4727777dab0Sopenharmony_ci * {@link AV_SESSION_ERR_SERVICE_EXCEPTION} Internal server error. 4737777dab0Sopenharmony_ci * {@link AV_SESSION_ERR_INVALID_PARAMETER} 4747777dab0Sopenharmony_ci * 1. The param of avsession is nullptr. 4757777dab0Sopenharmony_ci * 2. The param of loopMode is invalid. 4767777dab0Sopenharmony_ci * @since 13 4777777dab0Sopenharmony_ci */ 4787777dab0Sopenharmony_ciAVSession_ErrCode OH_AVSession_SetLoopMode(OH_AVSession* avsession, AVSession_LoopMode loopMode); 4797777dab0Sopenharmony_ci 4807777dab0Sopenharmony_ci/** 4817777dab0Sopenharmony_ci * @brief Request to register command callback. 4827777dab0Sopenharmony_ci * 4837777dab0Sopenharmony_ci * @param avsession The avsession instance pointer 4847777dab0Sopenharmony_ci * @param command The control command type to be registered. 4857777dab0Sopenharmony_ci * @param callback the {@link OH_AVSessionCallback_OnCommand} to be registered. 4867777dab0Sopenharmony_ci * @param userData User data which is passed by user. 4877777dab0Sopenharmony_ci * @return Function result code: 4887777dab0Sopenharmony_ci * {@link AV_SESSION_ERR_SUCCESS} If the execution is successful. 4897777dab0Sopenharmony_ci * {@link AV_SESSION_ERR_CODE_COMMAND_INVALID} The command is invalid. 4907777dab0Sopenharmony_ci * {@link AV_SESSION_ERR_SERVICE_EXCEPTION} Internal server error. 4917777dab0Sopenharmony_ci * {@link AV_SESSION_ERR_INVALID_PARAMETER} 4927777dab0Sopenharmony_ci * 1. The param of avsession is nullptr. 4937777dab0Sopenharmony_ci * 2. The param of callback is nullptr. 4947777dab0Sopenharmony_ci * @since 13 4957777dab0Sopenharmony_ci */ 4967777dab0Sopenharmony_ciAVSession_ErrCode OH_AVSession_RegisterCommandCallback(OH_AVSession* avsession, 4977777dab0Sopenharmony_ci AVSession_ControlCommand command, OH_AVSessionCallback_OnCommand callback, void* userData); 4987777dab0Sopenharmony_ci 4997777dab0Sopenharmony_ci/** 5007777dab0Sopenharmony_ci * @brief Request to unregister command callback. 5017777dab0Sopenharmony_ci * 5027777dab0Sopenharmony_ci * @param avsession The avsession instance pointer 5037777dab0Sopenharmony_ci * @param command The control command type to be unregistered. 5047777dab0Sopenharmony_ci * @param callback the {@link OH_AVSessionCallback_OnCommand} to be unregistered. 5057777dab0Sopenharmony_ci * @return Function result code: 5067777dab0Sopenharmony_ci * {@link AV_SESSION_ERR_SUCCESS} If the execution is successful. 5077777dab0Sopenharmony_ci * {@link AV_SESSION_ERR_CODE_COMMAND_INVALID} The command is invalid. 5087777dab0Sopenharmony_ci * {@link AV_SESSION_ERR_SERVICE_EXCEPTION} Internal server error. 5097777dab0Sopenharmony_ci * {@link AV_SESSION_ERR_INVALID_PARAMETER} 5107777dab0Sopenharmony_ci * 1. The param of avsession is nullptr. 5117777dab0Sopenharmony_ci * 2. The param of callback is nullptr. 5127777dab0Sopenharmony_ci * @since 13 5137777dab0Sopenharmony_ci */ 5147777dab0Sopenharmony_ciAVSession_ErrCode OH_AVSession_UnregisterCommandCallback(OH_AVSession* avsession, 5157777dab0Sopenharmony_ci AVSession_ControlCommand command, OH_AVSessionCallback_OnCommand callback); 5167777dab0Sopenharmony_ci 5177777dab0Sopenharmony_ci/** 5187777dab0Sopenharmony_ci * @brief Request to register fastforward callback. 5197777dab0Sopenharmony_ci * 5207777dab0Sopenharmony_ci * @param avsession The avsession instance pointer 5217777dab0Sopenharmony_ci * @param callback the {@link OH_AVSessionCallback_OnFastForward} to be registered. 5227777dab0Sopenharmony_ci * @param userData User data which is passed by user. 5237777dab0Sopenharmony_ci * @return Function result code: 5247777dab0Sopenharmony_ci * {@link AV_SESSION_ERR_SUCCESS} If the execution is successful. 5257777dab0Sopenharmony_ci * {@link AV_SESSION_ERR_SERVICE_EXCEPTION} Internal server error. 5267777dab0Sopenharmony_ci * {@link AV_SESSION_ERR_INVALID_PARAMETER} 5277777dab0Sopenharmony_ci * 1. The param of avsession is nullptr. 5287777dab0Sopenharmony_ci * 2. The param of callback is nullptr. 5297777dab0Sopenharmony_ci * @since 13 5307777dab0Sopenharmony_ci */ 5317777dab0Sopenharmony_ciAVSession_ErrCode OH_AVSession_RegisterForwardCallback(OH_AVSession* avsession, 5327777dab0Sopenharmony_ci OH_AVSessionCallback_OnFastForward callback, void* userData); 5337777dab0Sopenharmony_ci 5347777dab0Sopenharmony_ci/** 5357777dab0Sopenharmony_ci * @brief Request to unregister fastforward callback. 5367777dab0Sopenharmony_ci * 5377777dab0Sopenharmony_ci * @param avsession The avsession instance pointer 5387777dab0Sopenharmony_ci * @param callback the {@link OH_AVSessionCallback_OnFastForward} to be unregistered. 5397777dab0Sopenharmony_ci * @return Function result code: 5407777dab0Sopenharmony_ci * {@link AV_SESSION_ERR_SUCCESS} If the execution is successful. 5417777dab0Sopenharmony_ci * {@link AV_SESSION_ERR_SERVICE_EXCEPTION} Internal server error. 5427777dab0Sopenharmony_ci * {@link AV_SESSION_ERR_INVALID_PARAMETER} 5437777dab0Sopenharmony_ci * 1. The param of avsession is nullptr. 5447777dab0Sopenharmony_ci * 2. The param of callback is nullptr. 5457777dab0Sopenharmony_ci * @since 13 5467777dab0Sopenharmony_ci */ 5477777dab0Sopenharmony_ciAVSession_ErrCode OH_AVSession_UnregisterForwardCallback(OH_AVSession* avsession, 5487777dab0Sopenharmony_ci OH_AVSessionCallback_OnFastForward callback); 5497777dab0Sopenharmony_ci 5507777dab0Sopenharmony_ci/** 5517777dab0Sopenharmony_ci * @brief Request to register rewind callback. 5527777dab0Sopenharmony_ci * 5537777dab0Sopenharmony_ci * @param avsession The avsession instance pointer 5547777dab0Sopenharmony_ci * @param callback the {@link OH_AVSessionCallback_OnRewind} to be registered. 5557777dab0Sopenharmony_ci * @param userData User data which is passed by user. 5567777dab0Sopenharmony_ci * @return Function result code: 5577777dab0Sopenharmony_ci * {@link AV_SESSION_ERR_SUCCESS} If the execution is successful. 5587777dab0Sopenharmony_ci * {@link AV_SESSION_ERR_SERVICE_EXCEPTION} Internal server error. 5597777dab0Sopenharmony_ci * {@link AV_SESSION_ERR_INVALID_PARAMETER} 5607777dab0Sopenharmony_ci * 1. The param of avsession is nullptr. 5617777dab0Sopenharmony_ci * 2. The param of callback is nullptr. 5627777dab0Sopenharmony_ci * @since 13 5637777dab0Sopenharmony_ci */ 5647777dab0Sopenharmony_ciAVSession_ErrCode OH_AVSession_RegisterRewindCallback(OH_AVSession* avsession, 5657777dab0Sopenharmony_ci OH_AVSessionCallback_OnRewind callback, void* userData); 5667777dab0Sopenharmony_ci 5677777dab0Sopenharmony_ci/** 5687777dab0Sopenharmony_ci * @brief Request to unregister rewind callback. 5697777dab0Sopenharmony_ci * 5707777dab0Sopenharmony_ci * @param avsession The avsession instance pointer 5717777dab0Sopenharmony_ci * @param callback the {@link OH_AVSessionCallback_OnRewind} to be unregistered. 5727777dab0Sopenharmony_ci * @return Function result code: 5737777dab0Sopenharmony_ci * {@link AV_SESSION_ERR_SUCCESS} If the execution is successful. 5747777dab0Sopenharmony_ci * {@link AV_SESSION_ERR_SERVICE_EXCEPTION} Internal server error. 5757777dab0Sopenharmony_ci * {@link AV_SESSION_ERR_INVALID_PARAMETER} 5767777dab0Sopenharmony_ci * 1. The param of avsession is nullptr. 5777777dab0Sopenharmony_ci * 2. The param of callback is nullptr. 5787777dab0Sopenharmony_ci * @since 13 5797777dab0Sopenharmony_ci */ 5807777dab0Sopenharmony_ciAVSession_ErrCode OH_AVSession_UnregisterRewindCallback(OH_AVSession* avsession, 5817777dab0Sopenharmony_ci OH_AVSessionCallback_OnRewind callback); 5827777dab0Sopenharmony_ci 5837777dab0Sopenharmony_ci/** 5847777dab0Sopenharmony_ci * @brief Request to register seek callback. 5857777dab0Sopenharmony_ci * 5867777dab0Sopenharmony_ci * @param avsession The avsession instance pointer 5877777dab0Sopenharmony_ci * @param callback the {@link OH_AVSessionCallback_OnSeek} to be registered. 5887777dab0Sopenharmony_ci * @param userData User data which is passed by user. 5897777dab0Sopenharmony_ci * @return Function result code: 5907777dab0Sopenharmony_ci * {@link AV_SESSION_ERR_SUCCESS} If the execution is successful. 5917777dab0Sopenharmony_ci * {@link AV_SESSION_ERR_SERVICE_EXCEPTION} Internal server error. 5927777dab0Sopenharmony_ci * {@link AV_SESSION_ERR_INVALID_PARAMETER} 5937777dab0Sopenharmony_ci * 1. The param of avsession is nullptr. 5947777dab0Sopenharmony_ci * 2. The param of callback is nullptr. 5957777dab0Sopenharmony_ci * @since 13 5967777dab0Sopenharmony_ci */ 5977777dab0Sopenharmony_ciAVSession_ErrCode OH_AVSession_RegisterSeekCallback(OH_AVSession* avsession, 5987777dab0Sopenharmony_ci OH_AVSessionCallback_OnSeek callback, void* userData); 5997777dab0Sopenharmony_ci 6007777dab0Sopenharmony_ci/** 6017777dab0Sopenharmony_ci * @brief Request to unregister seek callback. 6027777dab0Sopenharmony_ci * 6037777dab0Sopenharmony_ci * @param avsession The avsession instance pointer 6047777dab0Sopenharmony_ci * @param callback the {@link OH_AVSessionCallback_OnSeek} to be unregistered. 6057777dab0Sopenharmony_ci * @return Function result code: 6067777dab0Sopenharmony_ci * {@link AV_SESSION_ERR_SUCCESS} If the execution is successful. 6077777dab0Sopenharmony_ci * {@link AV_SESSION_ERR_SERVICE_EXCEPTION} Internal server error. 6087777dab0Sopenharmony_ci * {@link AV_SESSION_ERR_INVALID_PARAMETER} 6097777dab0Sopenharmony_ci * 1. The param of avsession is nullptr. 6107777dab0Sopenharmony_ci * 2. The param of callback is nullptr. 6117777dab0Sopenharmony_ci * @since 13 6127777dab0Sopenharmony_ci */ 6137777dab0Sopenharmony_ciAVSession_ErrCode OH_AVSession_UnregisterSeekCallback(OH_AVSession* avsession, 6147777dab0Sopenharmony_ci OH_AVSessionCallback_OnSeek callback); 6157777dab0Sopenharmony_ci 6167777dab0Sopenharmony_ci/** 6177777dab0Sopenharmony_ci * @brief Request to register set loopmode callback. 6187777dab0Sopenharmony_ci * 6197777dab0Sopenharmony_ci * @param avsession The avsession instance pointer 6207777dab0Sopenharmony_ci * @param callback the {@link OH_AVSessionCallback_OnSetLoopMode} to be registered. 6217777dab0Sopenharmony_ci * @param userData User data which is passed by user. 6227777dab0Sopenharmony_ci * @return Function result code: 6237777dab0Sopenharmony_ci * {@link AV_SESSION_ERR_SUCCESS} If the execution is successful. 6247777dab0Sopenharmony_ci * {@link AV_SESSION_ERR_SERVICE_EXCEPTION} Internal server error. 6257777dab0Sopenharmony_ci * {@link AV_SESSION_ERR_INVALID_PARAMETER} 6267777dab0Sopenharmony_ci * 1. The param of avsession is nullptr. 6277777dab0Sopenharmony_ci * 2. The param of callback is nullptr. 6287777dab0Sopenharmony_ci * @since 13 6297777dab0Sopenharmony_ci */ 6307777dab0Sopenharmony_ciAVSession_ErrCode OH_AVSession_RegisterSetLoopModeCallback(OH_AVSession* avsession, 6317777dab0Sopenharmony_ci OH_AVSessionCallback_OnSetLoopMode callback, void* userData); 6327777dab0Sopenharmony_ci 6337777dab0Sopenharmony_ci/** 6347777dab0Sopenharmony_ci * @brief Request to unregister set loopmode callback. 6357777dab0Sopenharmony_ci * 6367777dab0Sopenharmony_ci * @param avsession The avsession instance pointer 6377777dab0Sopenharmony_ci * @param callback the {@link OH_AVSessionCallback_OnSetLoopMode} to be unregistered. 6387777dab0Sopenharmony_ci * @return Function result code: 6397777dab0Sopenharmony_ci * {@link AV_SESSION_ERR_SUCCESS} If the execution is successful. 6407777dab0Sopenharmony_ci * {@link AV_SESSION_ERR_SERVICE_EXCEPTION} Internal server error. 6417777dab0Sopenharmony_ci * {@link AV_SESSION_ERR_INVALID_PARAMETER} 6427777dab0Sopenharmony_ci * 1. The param of avsession is nullptr. 6437777dab0Sopenharmony_ci * 2. The param of callback is nullptr. 6447777dab0Sopenharmony_ci * @since 13 6457777dab0Sopenharmony_ci */ 6467777dab0Sopenharmony_ciAVSession_ErrCode OH_AVSession_UnregisterSetLoopModeCallback(OH_AVSession* avsession, 6477777dab0Sopenharmony_ci OH_AVSessionCallback_OnSetLoopMode callback); 6487777dab0Sopenharmony_ci 6497777dab0Sopenharmony_ci/** 6507777dab0Sopenharmony_ci * @brief Request to register toggle favorite callback. 6517777dab0Sopenharmony_ci * 6527777dab0Sopenharmony_ci * @param avsession The avsession instance pointer 6537777dab0Sopenharmony_ci * @param callback the {@link OH_AVSessionCallback_OnToggleFavorite} to be registered. 6547777dab0Sopenharmony_ci * @param userData User data which is passed by user. 6557777dab0Sopenharmony_ci * @return Function result code: 6567777dab0Sopenharmony_ci * {@link AV_SESSION_ERR_SUCCESS} If the execution is successful. 6577777dab0Sopenharmony_ci * {@link AV_SESSION_ERR_SERVICE_EXCEPTION} Internal server error. 6587777dab0Sopenharmony_ci * {@link AV_SESSION_ERR_INVALID_PARAMETER} 6597777dab0Sopenharmony_ci * 1. The param of avsession is nullptr. 6607777dab0Sopenharmony_ci * 2. The param of callback is nullptr. 6617777dab0Sopenharmony_ci * @since 13 6627777dab0Sopenharmony_ci */ 6637777dab0Sopenharmony_ciAVSession_ErrCode OH_AVSession_RegisterToggleFavoriteCallback(OH_AVSession* avsession, 6647777dab0Sopenharmony_ci OH_AVSessionCallback_OnToggleFavorite callback, void* userData); 6657777dab0Sopenharmony_ci 6667777dab0Sopenharmony_ci/** 6677777dab0Sopenharmony_ci * @brief Request to unregister toggle favorite callback. 6687777dab0Sopenharmony_ci * 6697777dab0Sopenharmony_ci * @param avsession The avsession instance pointer 6707777dab0Sopenharmony_ci * @param callback the {@link OH_AVSessionCallback_OnToggleFavorite} to be unregistered. 6717777dab0Sopenharmony_ci * @return Function result code: 6727777dab0Sopenharmony_ci * {@link AV_SESSION_ERR_SUCCESS} If the execution is successful. 6737777dab0Sopenharmony_ci * {@link AV_SESSION_ERR_SERVICE_EXCEPTION} Internal server error. 6747777dab0Sopenharmony_ci * {@link AV_SESSION_ERR_INVALID_PARAMETER} 6757777dab0Sopenharmony_ci * 1. The param of avsession is nullptr. 6767777dab0Sopenharmony_ci * 2. The param of callback is nullptr. 6777777dab0Sopenharmony_ci * @since 13 6787777dab0Sopenharmony_ci */ 6797777dab0Sopenharmony_ciAVSession_ErrCode OH_AVSession_UnregisterToggleFavoriteCallback(OH_AVSession* avsession, 6807777dab0Sopenharmony_ci OH_AVSessionCallback_OnToggleFavorite callback); 6817777dab0Sopenharmony_ci 6827777dab0Sopenharmony_ci#ifdef __cplusplus 6837777dab0Sopenharmony_ci} 6847777dab0Sopenharmony_ci#endif 6857777dab0Sopenharmony_ci 6867777dab0Sopenharmony_ci#endif // NATIVE_AVSESSION_H 6877777dab0Sopenharmony_ci/** @} */