功能介绍
本模块主要实现音视频监控,音视频双向对讲功能。
包含初始化音视频模块,注册监控对讲所需函数,sdk主动发起开始停止对讲及数据接收,设备端实现监控对讲开始停止的具体操作,发送监控对讲的音视频数据,接收发起端音视频数据并进行播放,另外支持在监控过程中的一些实时操作,例如云台控制,通过用户自声明数据发送指令。
流程指引
总流程
注册获取音视频、现场音视频开始播放、现场音视频开始播放、请求
I
帧、接收对讲音视频数据回调、监控时接收用户自定数据回调 > 音视频模块初始化 > 音视频模块去初始化。音视频对讲流程
开始播放回调 > 获取音视频编码 > 发送音视频数据。
开始播放回调 > 接收音视频数据回调 > 对音视频进行解码播放。
接收用户自定数据
接收用户自声明数据回调 > 解析数据进行相应控制。
接口参考
该功能模块提供以下接口:
iv_avt_init:音视频对讲模块初始化。
iv_avt_exit:音视频对讲模块去初始化。
iv_avt_get_av_info_cb:获取音视频参数信息(建议使用支持多路流版本)。
iv_avt_start_real_play_cb:现场音视频开始播放回调(建议使用支持多路流版本)。
iv_avt_stop_real_play_cb:现场音视频停止播放回调(建议使用支持多路流版本)。
iv_avt_request_iframe_cb:请求
I
帧回调(建议使用支持多路流版本)。iv_avt_send_stream:发送对讲音视频数据(建议使用支持多路流版本)。
iv_avt_receive_stream_cb:接收对讲音视频数据回调(建议使用支持多路流版本)。
iv_avt_set_av_dec_info_cb:即将接收到的音视频数据的解码信息(建议使用支持多路流版本)。
iv_avt_recv_user_data_cb:监控时接收用户自定数据、透传链接数据。
iv_avt_send_user_data:发送用户自定义数据、透传连接。
iv_avt_get_multiple_av_enc_info_cb:获取音视频指定通路流参数信息(支持多路流)。
iv_avt_start_multiple_live_stream_cb:现场音视频指定通路流开始播放回调(支持多路流)。
iv_avt_stop_multiple_live_stream_cb:现场音视频指定通路流停止播放回调(支持多路流)。
iv_avt_request_multiple_key_frame_cb:请求指定通路流
I
帧回调(支持多路流)。iv_avt_send_multiple_stream:发送指定通路流对讲音视频数据(支持多路流)。
iv_avt_applets_live_stream_notice_cb:小程序监控回调。
iv_avt_recv_multiple_stream_cb:接收音视频数据回调(支持多路流)。
iv_avt_start_recv_multiple_stream_cb:通知开启音视频接收(支持多路流)。
iv_avt_stop_recv_multiple_stream_cb:通知结束音视频接收(支持多路流)。
iv_avt_init
音视频对讲模块初始化。此接口在
iv_sys_init
初始化完成后调用,用于初始化音视频模块参数资源,远端发起的监控、本地回放处理函数,注册远端发过来的音视频数据接收函数,注册远端发过来的自定义用户数据的处理函数,注册远端发过来的透传连接数据的处理函数。int iv_avt_init(const iv_avt_init_parm_s *init_param);
参数说明
参数名称 | 类型 | 描述 | 输入/输出 |
init_param | const iv_avt_init_parm_s * | 音视频模块初始化属性参数。 | 输入 |
返回值
返回值 | 描述 |
IV_ERR_NONE | 成功。 |
IV_ERR_* | 失败,对应相应错误码。 |
iv_avt_exit
音视频对讲模块去初始化。本模块退出时调用,用于释放资源。
int iv_avt_exit(void);
参数说明
无
返回值
返回值 | 描述 |
IV_ERR_NONE | 成功。 |
IV_ERR_* | 失败,对应相应错误码。 |
iv_avt_get_av_info_cb
现场音视频开始播放回调。用于观看端发起现场监控时,SDK 回调设备端以取得此次监控通路的相应音视频信息。
说明:
该接口仅支持单路通道,推荐使用相同功能但支持多通道的
@iv_avt_get_multiple_av_enc_info_cb
。void (* iv_avt_get_av_info_cb)(iv_avt_video_res_type_e eVideoResType, iv_cm_av_data_info_s *pstAvDataInfo);
参数说明
参数名称 | 类型 | 描述 | 输入/输出 |
eVideoResType | iv_avt_video_res_type_e | 请求的视频清晰度类型。 | 输入 |
pstAvDataInfo | iv_cm_av_data_info_s* | 音视频数据信息。 | 输出 |
iv_avt_start_real_play_cb
现场音视频开始播放回调。用于观看端发起现场监控时,SDK 回调通知设备端启动相关音视频业务。
说明:
该接口仅支持单路通道,推荐使用相同功能但支持多通道的
@iv_avt_start_multiple_live_stream_cb
。void (* iv_avt_start_real_play_cb)(iv_avt_video_res_type_e eVideoResType);
参数说明
参数名称 | 类型 | 描述 | 输入/输出 |
eVideoResType | iv_avt_video_res_type_e | 请求的视频清晰度类型。 | 输入 |
返回值
返回值 | 描述 |
IV_ERR_NONE | 成功。 |
IV_ERR_* | 失败,对应相应错误码。 |
iv_avt_stop_real_play_cb
现场音视频停止播放回调,用于观看端停止现场监控时,sdk回调通知设备端关闭相关音视频业务。
说明:
该接口仅支持单路通道,推荐使用相同功能但支持多通道的
@iv_avt_stop_multiple_live_stream_cb
。void (* iv_avt_stop_real_play_cb)(iv_avt_video_res_type_e eVideoResType);
参数说明
参数名称 | 类型 | 描述 | 输入/输出 |
eVideoResType | iv_avt_video_res_type_e | 停止的视频清晰度类型。 | 输入 |
返回值
返回值 | 描述 |
IV_ERR_NONE | 成功。 |
IV_ERR_* | 失败,对应相应错误码。 |
iv_avt_send_stream
发送对讲音视频数据。在监控请求发起时,设备端所有编码启动正常后,开始取流向请求端发送数据,注意不同清晰度视频请求时音频也需要同时发送。
说明:
该接口仅支持单路通道,推荐使用相同功能但支持多通道的
@iv_avt_send_multiple_stream
。int iv_avt_send_stream(iv_avt_stream_type_e eStreamType, iv_avt_video_res_type_e eVideoResType, void *pStream);
参数说明
参数名称 | 类型 | 描述 | 输入/输出 |
eStreamType | iv_avt_stream_type_e | 发送的音视频类型(音频/视频)。 | 输入 |
eVideoResType | iv_avt_video_res_type_e | 发送的音视频清晰度类型。 | 输入 |
pStream | void * | 每次发送的音视频数据内容。 | 输入 |
返回值
返回值 | 描述 |
IV_ERR_NONE | 成功。 |
IV_ERR_* | 失败,对应相应错误码。 |
iv_avt_request_iframe_cb
请求
I
帧回调。用于 SDK 需要时请求设备强制编码 I
帧。说明:
该接口仅支持单路通道,推荐使用相同功能但支持多通道的
@iv_avt_request_iframe_cb
。int iv_avt_request_iframe_cb(iv_avt_video_res_type_e eVideoResType);
参数说明
参数名称 | 类型 | 描述 | 输入/输出 |
eVideoResType | iv_avt_video_res_type_e | 请求I帧清晰度类型。 | 输入 |
返回值
返回值 | 描述 |
IV_ERR_NONE | 成功 |
IV_ERR_* | 失败,对应相应错误码 |
iv_avt_set_av_dec_info_cb
设置设备对讲时音视频解码信息参数。
说明:
该接口仅支持单路通道,推荐使用相同功能但支持多通道的
@iv_avt_start_recv_multiple_stream_cb
。int (* iv_avt_set_av_dec_info_cb)(iv_cm_av_data_info_s *pstAvDataInfo);
参数说明
参数名称 | 类型 | 描述 | 输入/输出 |
pstAvDataInfo | iv_cm_av_data_info_s* | 音视频解码信息参数。 | 输入 |
返回值
返回值 | 描述 |
0 | 成功 |
< 0 | 失败 |
iv_avt_recv_stream_cb
接收对讲音视频数据回调。用于观看端向设备发送音视频数据时,设备端的接收数据回调,由用户实现对数据进行处理播放。
说明:
该接口仅支持单路通道,推荐使用相同功能但支持多通道的
@iv_avt_recv_multiple_stream_cb
。int (* iv_avt_recv_stream_cb)(iv_avt_stream_type_e eStreamType, void *pStream);
参数说明
参数名称 | 类型 | 描述 | 输入/输出 |
eStreamType | iv_avt_stream_type_e | 发送的音视频类型(音频/视频)。 | 输入 |
pStream | void* | 每次发送的音视频数据内容。 | 输入 |
返回值
返回值 | 描述 |
0 | 成功 |
< 0 | 失败 |
iv_avt_recv_user_data_cb
监控过程中,由 App 发送的实时指令数据到设备,数据内容由用户自声明,可以作为控制 PTZ、对讲开关等功能。
void (* iv_avt_recv_user_data_cb)(uint32_t channel, char* pUserData, uint32_t u32UserDataLen);
参数说明
参数名称 | 类型 | 描述 | 输入/输出 |
channle | uint32_t | 通道号 | 输入 |
pUserData | char* | 用户数据 | 输入 |
u32UserDataLen | uint32_t | 用户数据长度 | 输入 |
返回值
返回值 | 描述 |
void | void |
iv_avt_send_user_data
发送用户自定义数据、透传数据。
int iv_avt_send_user_data(uint32_t channel, uint8_t *data, uint16_t length);
参数说明
参数名称 | 类型 | 描述 | 输入/输出 |
channel | uint32_t | 通道号。 | 输入 |
data | uint8_t* | 用户数据。 | 输入 |
length | uint16_t | 用户数据长度,不能超过65500字节。 | 输入 |
返回值
返回值 | 描述 |
IV_ERR_NONE | 成功。 |
IV_ERR_* | 失败,对应相应错误码。 |
iv_avt_get_multiple_av_enc_info_cb
现场音视频开始播放回调。用于观看端发起现场监控时,SDK 回调设备端以取得此次监控通路的相应音视频信息。适用于多路输出流存在,观看端可选取其中一路流进行观看的场景。例如多摄像头、NVR 等。
int (* iv_avt_get_multiple_av_enc_info_cb)(uint32_t channel, iv_avt_video_res_type_e video_res_type, iv_cm_av_data_info_s *avenc_attr);
参数说明
参数名称 | 类型 | 描述 | 输入/输出 |
channle | uint32_t | 多路输出流通道编号。 | 输入 |
eVideoResType | iv_avt_video_res_type_e | 请求的视频清晰度类型。 | 输入 |
pstAvDataInfo | iv_cm_av_data_info_s* | 音视频数据信息。 | 输出 |
iv_avt_request_multiple_key_frame_cb
请求
I
帧回调。用于 SDK 需要时请求设备强制编码 I
帧。适用于多路输出流存在,请求指定通路流 I
帧。例如多摄像头、NVR 等。int iv_avt_request_multiple_key_frame_cb(uint32_t channel, iv_avt_video_res_type_e video_res_type);
参数说明
参数名称 | 类型 | 描述 | 输入/输出 |
channle | uint32_t | 多路输出流通道编号。 | 输入 |
eVideoResType | iv_avt_video_res_type_e | 请求 I 帧的视频清晰度类型。 | 输入 |
返回值
返回值 | 描述 |
IV_ERR_NONE | 成功。 |
IV_ERR_* | 失败,对应相应错误码。 |
iv_avt_start_multiple_live_stream_cb
现场音视频开始播放回调。用于观看端发起现场监控时,SDK 回调通知设备端开启相关音视频业务。适用于多路输出流存在,请求开启指定通路的音视频业务。例如多摄像头、NVR 等。
int iv_avt_start_multiple_live_stream_cb(uint32_t channel, iv_avt_video_res_type_e video_res_type);
参数说明
参数名称 | 类型 | 描述 | 输入/输出 |
channle | uint32_t | 多路输出流通道编号。 | 输入 |
eVideoResType | iv_avt_video_res_type_e | 请求的视频清晰度类型。 | 输入 |
返回值
返回值 | 描述 |
IV_ERR_NONE | 成功。 |
IV_ERR_* | 失败,对应相应错误码。 |
iv_avt_stop_multiple_live_stream_cb
现场音视频停止播放回调,用于观看端停止现场监控时,SDK 回调通知设备端关闭相关音视频业务。适用于多路输出流存在,请求关闭指定通路的音视频业务。例如多摄像头、NVR 等。
int iv_avt_stop_multiple_live_stream_cb(uint32_t channel, iv_avt_video_res_type_e video_res_type);
参数说明
参数名称 | 类型 | 描述 | 输入/输出 |
channle | uint32_t | 多路输出流通道编号。 | 输入 |
eVideoResType | iv_avt_video_res_type_e | 请求停止流的视频清晰度类型。 | 输入 |
返回值
返回值 | 描述 |
IV_ERR_NONE | 成功。 |
IV_ERR_* | 失败,对应相应错误码。 |
iv_avt_send_multiple_stream
发送对讲音视频数据。在观看端发起监控请求时,设备端相应准备工作完成(音视频编码启动)后,取流向观看端发送数据的接口。不同清晰度视频请求时音频也需要同时发送。适用于多路输出流存在,向指定流通路进行发送。例如多摄像头、NVR 等。
int iv_avt_send_multiple_stream(uint32_t av_chanel, iv_avt_stream_type_e stream_type, iv_avt_video_res_type_e video_res_type, void *pstream);
参数说明
参数名称 | 类型 | 描述 | 输入/输出 |
channel | uint32_t | 多路输出流通道编号。 | 输入 |
eStreamType | iv_avt_stream_type_e | 发送的音视频类型(音频/视频)。 | 输入 |
eVideoResType | iv_avt_video_res_type_e | 发送的音视频清晰度类型。 | 输入 |
pStream | void * | 每次发送的音视频数据内容。 | 输入 |
返回值
返回值 | 描述 |
IV_ERR_NONE | 成功。 |
IV_ERR_* | 失败,对应相应错误码。 |
iv_avt_recv_multiple_stream_cb
接收到远端 App 发送的音视频数据后通过该回调传输到应用层。
int (* iv_avt_recv_multiple_stream_cb)(uint32_t channel,iv_avt_stream_type_e stream_type,void *pstream);
参数说明
参数名称 | 类型 | 描述 | 输入/输出 |
channel | uint32_t | 多路输入流通道编号。 | 输入 |
stream_type | iv_avt_stream_type_e | 接收到的音视频类型(音频/视频)。 | 输入 |
pstream | void * | 接收到的音视频数据内容。 | 输入 |
返回值
返回值 | 描述 |
预留 | 返回 IV_ERR_NONE 即可。 |
iv_avt_start_recv_multiple_stream_cb
接收到远端 App 发起的音视频传输(对讲、视频通话)时通过该回调,传输相关的音视频编码信息到应用层,供给解码器初始化使用。
int (* iv_avt_start_recv_multiple_stream_cb)(uint32_t channel,iv_cm_av_data_info_s *avenc_attr);
参数说明
参数名称 | 类型 | 描述 | 输入/输出 |
channel | uint32_t | 多路输入流通道编号。 | 输入 |
avenc_attr | iv_cm_av_data_info_s | 音视频数据编码信息,供给解码器使用。 | 输入 |
返回值
返回值 | 描述 |
是否允许本次对讲、视频通话 | 允许返回0,否则返回错误码 @iv_avt_dev_hungup_type_e |
iv_avt_stop_recv_multiple_stream_cb
接收到远端 App 挂断音视频传输(对讲、视频通话)时通过该回调通知应用层去初始化解码器。
int (* iv_avt_stop_recv_multiple_stream_cb)(uint32_t channel,iv_avt_stream_type_e stream_type);
参数说明
参数名称 | 类型 | 描述 | 输入/输出 |
channel | uint32_t | 多路输入流通道编号。 | 输入 |
stream_type | iv_avt_stream_type_e | 停止传输的流类型,音频、视频。 | 输入 |
返回值
返回值 | 描述 |
预留 | 返回 IV_ERR_NONE 即可。 |
数据结构
SDK 系统模块提供以下数据结构:
iv_avt_init_parm_s:音视频对讲初始化参数结构体。
iv_avt_stream_type_e:音视频数据类型枚举。
iv_avt_video_res_e:视频清晰度枚举。
iv_avt_dev_hungup_type_e 设备主动挂断错误码枚举。
音视频结构参考公共模块音视频结构。
iv_avt_init_parm_s
音视频对讲初始化参数结构体。
typedef struct iv_avt_init_parm_s{uint32_t u32MaxFrameSize;void (* iv_avt_get_av_enc_info_cb)(iv_avt_video_res_type_e eVideoResType, iv_cm_av_data_info_s *pstAvDataInfo);void (* iv_avt_start_real_play_cb)(iv_avt_video_res_type_e eVideoResType);void (* iv_avt_stop_real_play_cb)(iv_avt_video_res_type_e eVideoResType);int (* iv_avt_request_iframe_cb)();int (* iv_avt_set_av_dec_info_cb)(iv_cm_av_data_info_s *pstAvDataInfo);int (* iv_avt_recv_stream_cb)(iv_avt_stream_type_e eStreamType, void *pStream);void (* iv_avt_recv_user_data_cb)(uint32_t channel, char* pUserData, uint32_t u32UserDataLen);int (* iv_avt_get_multiple_av_enc_info_cb)(uint32_t channel, iv_avt_video_res_type_e video_res_type, iv_cm_av_data_info_s *avenc_attr);int (* iv_avt_request_multiple_key_frame_cb)(uint32_t channel, iv_avt_video_res_type_e video_res_type);int (* iv_avt_start_multiple_live_stream_cb)(uint32_t channel, iv_avt_video_res_type_e video_res_type);int (* iv_avt_stop_multiple_live_stream_cb)(uint32_t channel, iv_avt_video_res_type_e video_res_type);int (* iv_avt_applets_live_stream_notice_cb)(uint8_t *url_buff, uint32_t url_buff_len);int (* iv_avt_recv_multiple_stream_cb)(uint32_t channel, iv_avt_stream_type_e stream_type, void *pstream);int (* iv_avt_start_recv_multiple_stream_cb)(uint32_t channel, iv_cm_av_data_info_s *avenc_attr);int (* iv_avt_stop_recv_multiple_stream_cb)(uint32_t channel, iv_avt_stream_type_e stream_type);}iv_avt_init_parm_s;
参数说明
成员名称 | 描述 |
u32MaxFrameSize | 音视频每帧的最大值,发送流时,保证每帧的大小小于此值,单位 Kb。 |
iv_avt_get_av_enc_info_cb | 获取设备编码信息回调 (不推荐)。 |
iv_avt_start_real_play_cb | 现场监控开启回调 (不推荐)。 |
iv_avt_stop_real_play_cb | 现场监控停止回调 (不推荐)。 |
iv_avt_request_iframe_cb | 请求编码 I 帧回调 (不推荐)。 |
iv_avt_set_av_dec_info_cb | 设置设备对讲解码信息回调 (不推荐)。 |
iv_avt_recv_stream_cb | 接收观看端发来的音视频数据回调(不推荐)。 |
iv_avt_recv_user_data_cb | 接收监控时用户自定义数据、透传连接的数据。 |
iv_avt_get_multiple_av_enc_info_cb | 获取设备编码信息回调(推荐)。 |
iv_avt_request_multiple_key_frame_cb | 请求编码I帧回调(推荐)。 |
iv_avt_start_multiple_live_stream_cb | 现场监控开启回调(推荐)。 |
iv_avt_stop_multiple_live_stream_cb | 现场监控停止回调(推荐)。 |
iv_avt_applets_live_stream_notice_cb | 小程序监控通知回调。 |
iv_avt_recv_multiple_stream_cb | 接收音视频数据回调(推荐)。 |
iv_avt_start_recv_multiple_stream_cb | 通知开始接收音视频数据回调(推荐)。 |
iv_avt_stop_recv_multiple_stream_cb | 通知停止接收音视频数据回调(推荐)。 |
iv_avt_stream_type_e
音视频数据类型枚举。包括音频和视频。
typedef enum{IV_AVT_STREAM_TYPE_AUDIO = 0,IV_AVT_STREAM_TYPE_VIDEO = 1,IV_AVT_STREAM_TYPE_AV = 2,IV_AVT_STREAM_TYPE_BUTT}iv_avt_stream_type_e;
参数说明
成员名称 | 描述 |
IV_AVT_STREAM_TYPE_AUDIO | 音频 |
IV_AVT_STREAM_TYPE_VIDEO | 视频 |
IV_AVT_STREAM_TYPE_AV | 音频+视频 |
iv_avt_video_res_type_e
视频清晰度枚举。
typedef enum{IV_AVT_VIDEO_RES_FL = 0,IV_AVT_VIDEO_RES_SD = 1,IV_AVT_VIDEO_RES_HD = 2,IV_AVT_VIDEO_RES_BUTT}iv_avt_video_res_type_e;
参数说明
成员名称 | 描述 |
IV_AVT_VIDEO_RES_FL | 流畅 |
IV_AVT_VIDEO_RES_SD | 标清 |
IV_AVT_VIDEO_RES_HD | 高清 |
iv_avt_dev_hungup_type_e
设备主动挂断错误码枚举。
typedef enum{IV_AVT_DEV_HUNGUP_NONE = 0,IV_AVT_DEV_HUNGUP_NOTSUPPORT = 1,/* IV_AVT_DEV_HUNGUP_* */IV_AVT_DEV_HUNGUP_MAX = 50} iv_avt_dev_hungup_type_e;
参数说明
成员名称 | 描述 | 取值 |
IV_AVT_DEV_HUNGUP_NONE | 不挂断,允许。 | 0 |
IV_AVT_DEV_HUNGUP_NOTSUPPORT | 不支持的类型。 | 1 |
IV_AVT_DEV_HUNGUP_* | 开发者自定义。 | [2-49] |
示例代码
1. 对讲模块初始化
iv_err_code_e eErrCode = 0;iv_avt_init_parm_s stAvtInitParameters;memset(&stAvtInitParameters, 0, sizeof(iv_avt_init_parm_s));//这里可选择支持多路(多个摄像头)或者仅单路(单个摄像头),注册一种即可//如果都注册则优先使用多路。//推荐使用多路#if 0stAvtInitParameters.iv_avt_get_av_enc_info_cb = av_talk_get_enc_info;stAvtInitParameters.iv_avt_start_real_play_cb = av_talk_start_real_play;stAvtInitParameters.iv_avt_stop_real_play_cb = av_talk_stop_real_play;stAvtInitParameters.iv_avt_request_iframe_cb = av_talk_request_iframe;//接收流stAvtInitParameters.iv_avt_recv_stream_cb = av_talk_recv_stream;stAvtInitParameters.iv_avt_set_av_dec_info_cb = av_talk_set_dec_info;#else//发送流相关stAvtInitParameters.iv_avt_get_multiple_av_enc_info_cb = av_talk_get_multiple_enc_info;stAvtInitParameters.iv_avt_start_multiple_live_stream_cb = av_talk_start_multiple_live_stream;stAvtInitParameters.iv_avt_stop_multiple_live_stream_cb = av_talk_stop_multiple_live_stream;stAvtInitParameters.iv_avt_request_multiple_key_frame_cb= av_talk_request_multiple_key_frame;//接收流相关stAvtInitParameters.iv_avt_start_recv_multiple_stream_cb = av_talk_start_recv_multiple_stream;stAvtInitParameters.iv_avt_stop_recv_multiple_stream_cb = av_talk_stop_recv_multiple_stream;stAvtInitParameters.iv_avt_recv_multiple_stream_cb = av_talk_recv_multiple_stream;#endif//用户自定义信令、自定义数据、透传数据,可以传输量大的数据stAvtInitParameters.iv_avt_recv_user_data_cb = av_talk_recv_user_data;//小程序监控#if 1stAvtInitParameters.iv_avt_applets_live_stream_notice_cb = av_applets_live_stream_start;#endifeErrCode = iv_avt_init(&stAvtInitParameters);if(eErrCode < 0){GDB_ERR("fail:%d.\\n",eErrCode);}
2. 对讲模块退出
iv_avt_exit();
3. 发送音视频数据
iv_cm_avenc_stream_s stIvAvencStream; //音视频混合iv_avt_send_stream(IV_AVT_STREAM_TYPE_AV, eVideoResType, &stIvAvencStream);//第0路流音视频混合iv_avt_send_multiple_stream(0, IV_AVT_STREAM_TYPE_AUDIO, eVideoResType, &stIvAvencStream);
4. 接收音视频数据
int static av_talk_recv_stream(iv_avt_stream_type_e eAvtStreamType, void *pstAvtStream){if(eAvtStreamType == IV_AVT_STREAM_TYPE_AUDIO){/*音频解码*/}else{/*视频解码*/}return 0;}
5. 对讲时信令控制
void av_talk_recv_user_data(char* pUserData, uint32_t u32UserDataLen){GDB_INFO("data:");for(int i=0;i<u32UserDataLen; i++){printf("%2x ", pUserData[i]);}printf("\\n");/*按用户自定格式解析并进行控制操作*/return;}