Edit online

MPP Player 接口设计

这一层是对外提供的接口,用户只与这一层交互即可。

struct aic_player *aic_player_create(char *uri);

s32 aic_player_destroy(struct aic_player *player);

s32 aic_player_set_uri(struct aic_player *player,char *uri);

// 异步解析媒体文件
s32 aic_player_prepare_async(struct aic_player *player);

// 同步解析媒体文件,媒体文件比较大时,解析文件比较耗时,程序会一直阻塞在这个函数中,所以提供了上面的异步接口,
// 异步接口中,创建一个线程去解析文件,所以异步接口会立刻返回,但是文件并没有解析完。无论解析成功还是失败,player
// 内部会通过事件回调函数 event_handler 通知 app。
s32 aic_player_prepare_sync(struct aic_player *player);

s32 aic_player_start(struct aic_player *player);

s32 aic_player_play(struct aic_player *player);

s32 aic_player_pause(struct aic_player *player);

s32 aic_player_stop(struct aic_player *player);

s32 aic_player_get_media_info(struct aic_player *player,struct av_media_info *media_info);

s32 aic_player_set_event_callback(struct aic_player *player,void* app_data,event_handler event_handle );

s32 aic_player_get_screen_size(struct aic_player *player,struct mpp_size *screen_size);

s32 aic_player_set_disp_rect(struct aic_player *player,struct mpp_rect *disp_rect);

s32 aic_player_get_disp_rect(struct aic_player *player,struct mpp_rect *disp_rect);

s32 aic_player_set_mute(struct aic_player *player);

s32 aic_player_set_volum(struct aic_player *player,s32 vol);

s32 aic_player_get_volum(struct aic_player *player,s32 *vol);

s64 aic_player_get_play_time(struct aic_player *player);

s32 aic_player_seek(struct aic_player *player, u64 seek_time);

s32 aic_player_capture(struct aic_player *player, struct aic_capture_info *capture_info);

//rotation_angle 可以取的值 MPP_ROTATION_0,MPP_ROTATION_90,MPP_ROTATION_180,MPP_ROTATION_270
s32 aic_player_set_rotation(struct aic_player *player, int rotation_angle);

s32 aic_player_get_rotation(struct aic_player *player);
1. aic_player_create
函数原型 struct aic_player *aic_player_create(char *uri)
功能说明 创建 player 对象
参数定义 uri:媒体文件路径
返回值 palyer 对象
注意事项 -
2. aic_player_destroy
函数原型 s32 aic_player_destroy(struct aic_player *player)
功能说明 销毁 player 对象
参数定义 player:player 对象
返回值 0:成功,其他:失败
注意事项 在 IDLE 和 STOPPED 状态起作用
3. aic_player_set_uri
函数原型 s32 aic_player_set_uri(struct aic_player *player,char *uri)
功能说明 设置媒体文件路径
参数定义 player:player 对象,uri:媒体文件路径
返回值 0:成功,其他:失败
注意事项 在 IDLE 和 STOPPED 状态起作用
4. aic_player_prepare_async
函数原型 s32 aic_player_prepare_async(struct aic_player *player)
功能说明 异步解析媒体文件
参数定义 player:player 对象
返回值 0:解析命令发送成功,其他:失败
注意事项 在 INITIALIZED 状态起作用
5. aic_player_prepare_sync
函数原型 s32 aic_player_prepare_sync(struct aic_player *player)
功能说明 同步解析媒体文件
参数定义 player:player 对象
返回值 0:解析文件成功,其他:失败
注意事项 在 INITIALIZED 状态起作用
6. aic_player_start
函数原型 s32 aic_player_start(struct aic_player *player)
功能说明 启动播放器,创建音视频解码线程和音视频渲染线程
参数定义 player:player 对象
返回值 0:成功,其他:失败
注意事项 在 PREPARED 状态起作用
7. aic_player_play
函数原型 s32 aic_player_play(struct aic_player *player)
功能说明 播放媒体文件
参数定义 player:player 对象
返回值 0:成功,其他:失败
注意事项 在 STARETED 状态起作用
8. aic_player_pause
函数原型 s32 aic_player_pause(struct aic_player *player)
功能说明 暂停播放媒体文件
参数定义 player:player 对象
返回值 0:成功,其他:失败
注意事项 在 PLAYING 和 PAUSED 状态起作用
9. aic_player_stop
函数原型 s32 aic_player_stop(struct aic_player *player)
功能说明 停止播放,释放音视频解码线程和音视频显示线程
参数定义 player:player 对象
返回值 0:成功,其他:失败
注意事项 任意状态可以调用该函数来停止播放器。切换文件时一定要调用 stop。
10. aic_player_get_media_info
函数原型 s32 aic_player_get_media_info(struct aic_player *player, struct av_media_info *media_info)
功能说明 获取媒体信息
参数定义 player:player 对象,media_info:媒体信息
返回值 0:成功,其他:失败
注意事项 在 PREPARED 和 COMPLETED 区间的状态起作用
11. aic_player_set_event_callback
函数原型 s32 aic_player_set_event_callback(struct aic_player *player, event_handler event_handle)
功能说明 获取媒体信息
参数定义 player:player 对象,event_handle:监听事件函数
返回值 0:成功,其他:失败
注意事项 一定要注册,播放结束通过回调函数通知
12. aic_player_get_screen_size
函数原型 s32 aic_player_get_screen_size(struct aic_player *player, struct mpp_size *screen_size)
功能说明 获取屏幕大小
参数定义 player:player 对象,screen_size:屏幕大小
返回值 0:成功,其他:失败
注意事项 在 STARETED 和 COMPLETED 区间的状态均起作用
13. aic_player_set_disp_rect
函数原型 s32 aic_player_set_disp_rect(struct aic_player *player, struct mpp_rect *disp_rect)
功能说明 设置显示区域
参数定义 player:player 对象,disp_rect:显示区域
返回值 0:成功,其他:失败
注意事项 在 STARETED 和 COMPLETED 区间的状态起作用
14. aic_player_get_disp_rect
函数原型 s32 aic_player_get_disp_rect(struct aic_player *player, struct mpp_rect *disp_rect)
功能说明 设置显示区域
参数定义 player:player 对象,disp_rect:显示区域
返回值 0:成功,其他:失败
注意事项 在 STARETED 和 COMPLETED 区间的状态起作用
15. aic_player_set_mute
函数原型 s32 aic_player_set_mute(struct aic_player *player)
功能说明 静音切换
参数定义 player:player 对象
返回值 0:成功,其他:失败
注意事项 在 STARETED 和 COMPLETED 区间的状态起作用
16. aic_player_set_volum
函数原型 s32 aic_player_set_volum(struct aic_player *player,s32 vol)
功能说明 设置音量
参数定义 player:player 对象,vol:音量
返回值 0:成功,其他:失败
注意事项 在 STARETED 和 COMPLETED 区间的状态起作用
17. aic_player_get_volum
函数原型 s32 aic_player_get_volum(struct aic_player *player,s32 *vol)
功能说明 获取音量
参数定义 player:player 对象,vol:音量
返回值 0:成功,其他:失败
注意事项 在 STARETED 和 COMPLETED 区间的状态起作用
18. aic_player_get_play_time
函数原型 s64 aic_player_get_play_time(struct aic_player *player)
功能说明 获取播放时间
参数定义 player:player 对象
返回值 >=0:播放时间,<0:获取播放时间的状态不对
注意事项 在 STARETED 和 COMPLETED 区间的状态起作用
19. aic_player_seek
函数原型 s32 aic_player_seek(struct aic_player *player, u64 seek_time)
功能说明 跳转指定时间点
参数定义 player:player 对象,seek_time:跳转的时间点
返回值 0:成功,其他:失败
注意事项 在 IDLE/INITIALIZED/PREPARING 状态下设置不起作用
20. aic_player_capture
函数原型 s32 aic_player_capture(struct aic_player *player, struct aic_capture_info *capture_info)
功能说明 跳转指定时间点
参数定义 player:player 对象,capture_info:抓拍信息
返回值 0:成功,其他:失败
注意事项 只有在 PAUSED 状态下起作用
21. aic_player_set_rotation
函数原型 s32 aic_player_set_rotation(struct aic_player *player, int rotation_angle)
功能说明 设置视频旋转角度
参数定义 player:player 对象,rotation_angle:旋转角度 angle 可取值 MPP_ROTATION_0,MPP_ROTATION_90,MPP_ROTATION_180,MPP_ROTATION_270
返回值 0:成功,其他:失败
注意事项 在 STARTED/PLAYING/PAUSED/COMPLETED 状态下设置起作用
22. aic_player_get_rotation
函数原型 s32 aic_player_get_rotation(struct aic_player *player)
功能说明 获取视频旋转角度
参数定义 player:player 对象
返回值 >=0:旋转角度,<0:获取失败
注意事项 在 STARTED/PLAYING/PAUSED/COMPLETED 状态下可以获取