SmartAudio/package/libs/libyunxin/lib/include/api/nim_rts.h

191 lines
10 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/** @file nim_rts.h
* @brief 实时会话(数据通道) 接口头文件,如果需要用到音视频功能请使用音视频设备相关接口
* @copyright (c) 2015-2017, NetEase Inc. All rights reserved
* @author gq
* @date 2015/6/30
*/
#ifndef NIM_SDK_DLL_API_NIM_RTS_H_
#define NIM_SDK_DLL_API_NIM_RTS_H_
#include "nim_sdk_dll.h"
#include "../export_headers/nim_rts_def.h"
#ifdef __cplusplus
extern"C"
{
#endif
//发起相关
/** @fn void nim_rts_start(int channel_type, const char *uid, const char *json_extension, nim_rts_start_cb_func cb, const void *user_data)
* NIM 创建rts会话传入的JSON参数定义见nim_rts_def.h
* @param[in] channel_type 通道类型 如要tcp+音视频则channel_type=kNIMRtsChannelTypeTcp|kNIMRtsChannelTypeVchat同时整个SDK只允许一个音视频通道存在包括vchat
* @param[in] uid 对方帐号
* @param[in] json_extension Json string 扩展
* @param[in] cb 结果回调见nim_rts_def.h
* @param[in] user_data APP的自定义用户数据SDK只负责传回给回调函数不做任何处理
* @return void 无返回值
* @note 错误码 200:成功
* 414:参数错误
* 501:数据库失败
* 509:通道失效
* 514:服务不可用
* 11001:无可送达的被叫方,主叫方可直接挂断
*/
NIM_SDK_DLL_API void nim_rts_start(int channel_type, const char *uid, const char *json_extension, nim_rts_start_cb_func cb, const void *user_data);
/** @fn void nim_rts_set_start_notify_cb_func(nim_rts_start_notify_cb_func cb, const void *user_data)
* NIM 设置收到会话邀请的通知的回调
* @param[in] cb 见nim_rts_def.h
* @param[in] user_data APP的自定义用户数据SDK只负责传回给回调函数不做任何处理
* @return void 无返回值
* @note 错误码 200:成功
* 404:对象不存在,发起记录不存在
* 509:通道失效
*/
NIM_SDK_DLL_API void nim_rts_set_start_notify_cb_func(nim_rts_start_notify_cb_func cb, const void *user_data);
/** @fn void nim_rts_create_conf(const char *name, const char *custom_info, const char *json_extension, nim_rts_create_cb_func cb, const void *user_data)
* NIM VCHAT 创建一个多人数据通道房间(后续需要主动调用加入接口进入房间)
* @param[in] name 房间名
* @param[in] custom_info 自定义的房间信息(加入房间的时候会返回)
* @param[in] json_extension 无效扩展字段
* @param[in] cb 结果回调见nim_rts_def.h返回的json_extension无效
* @param[in] user_data APP的自定义用户数据SDK只负责传回给回调函数cb不做任何处理
* @return void 无返回值
* @note 错误码 200:成功
* 417:提示已经创建好频道
*/
NIM_SDK_DLL_API void nim_rts_create_conf(const char *name, const char *custom_info, const char *json_extension, nim_rts_create_cb_func cb, const void *user_data);
/** @fn void nim_rts_join_conf(const char *name, const char *json_extension, nim_rts_join_cb_func cb, const void *user_data)
* NIM VCHAT 加入一个多人房间进入房间后成员变化等等同点对点nim_vchat_cb_func
* @param[in] name 房间名
* @param[in] json_extension 扩展可选参数kNIMRtsDataRecord,kNIMRtsSessionId 如{"data_record":1, "session_id":"b76e2b7ae065224499e4d7138d643961"}
* @param[in] cb 结果回调见nim_rts_def.h回调的json_extension若成功返回创建的kNIMRtsCustomInfo及kNIMRtsChannelId如{"channel_id": 1231, "custom_info":"hello world" }
* @param[in] user_data APP的自定义用户数据SDK只负责传回给回调函数cb不做任何处理
* @return void 无返回值
* @note 错误码 200:成功
*/
NIM_SDK_DLL_API void nim_rts_join_conf(const char *name, const char *json_extension, nim_rts_join_cb_func cb, const void *user_data);
/** @fn void nim_rts_ack(const char *session_id, int channel_type, bool accept, const char *json_extension, nim_rts_ack_res_cb_func cb, const void *user_data)
* NIM 回复收到的邀请
* @param[in] session_id 会话id
* @param[in] channel_type 通道类型,暂时无效
* @param[in] accept 是否接受
* @param[in] json_extension Json string 扩展
* @param[in] cb 见nim_rts_def.h
* @param[in] user_data APP的自定义用户数据SDK只负责传回给回调函数不做任何处理
* @return void 无返回值
*/
NIM_SDK_DLL_API void nim_rts_ack(const char *session_id, int channel_type, bool accept, const char *json_extension, nim_rts_ack_res_cb_func cb, const void *user_data);
/** @fn void nim_rts_set_ack_notify_cb_func(nim_rts_ack_notify_cb_func cb, const void *user_data)
* NIM 设置收到对方回复的通知回调
* @param[in] cb 见nim_rts_def.h
* @param[in] user_data APP的自定义用户数据SDK只负责传回给回调函数不做任何处理
* @return void 无返回值
* @note 错误码 200:成功
* 509:失效
*/
NIM_SDK_DLL_API void nim_rts_set_ack_notify_cb_func(nim_rts_ack_notify_cb_func cb, const void *user_data);
/** @fn void nim_rts_set_sync_ack_notify_cb_func(nim_rts_sync_ack_notify_cb_func cb, const void *user_data)
* NIM 设置收到本人其他端回复的同步通知回调
* @param[in] cb 见nim_rts_def.h
* @param[in] user_data APP的自定义用户数据SDK只负责传回给回调函数不做任何处理
* @return void 无返回值
*/
NIM_SDK_DLL_API void nim_rts_set_sync_ack_notify_cb_func(nim_rts_sync_ack_notify_cb_func cb, const void *user_data);
//状态回调相关
/** @fn void nim_rts_set_connect_notify_cb_func(nim_rts_connect_notify_cb_func cb, const void *user_data)
* NIM 设置监听通道连接状态回调
* @param[in] cb 见nim_rts_def.h
* @param[in] user_data APP的自定义用户数据SDK只负责传回给回调函数不做任何处理
* @return void 无返回值
*/
NIM_SDK_DLL_API void nim_rts_set_connect_notify_cb_func(nim_rts_connect_notify_cb_func cb, const void *user_data);
/** @fn void nim_rts_set_member_change_cb_func(nim_rts_member_change_cb_func cb, const void *user_data)
* NIM 设置监听通道成员状态回调
* @param[in] cb 见nim_rts_def.h
* @param[in] user_data APP的自定义用户数据SDK只负责传回给回调函数不做任何处理
* @return void 无返回值
* @note 错误码 200:成功
*/
NIM_SDK_DLL_API void nim_rts_set_member_change_cb_func(nim_rts_member_change_cb_func cb, const void *user_data);
//控制接口
/** @fn void nim_rts_control(const char *session_id, const char *info, const char *json_extension, nim_rts_control_res_cb_func cb, const void *user_data)
* NIM 会话控制(透传),点对点有效
* @param[in] session_id 会话id
* @param[in] info 透传数据
* @param[in] json_extension 无效的扩展字段
* @param[in] cb 见nim_rts_def.h
* @param[in] user_data 无效的扩展字段
* @return void 无返回值
*/
NIM_SDK_DLL_API void nim_rts_control(const char *session_id, const char *info, const char *json_extension, nim_rts_control_res_cb_func cb, const void *user_data);
/** @fn void nim_rts_set_control_notify_cb_func(nim_rts_control_notify_cb_func cb, const void *user_data)
* NIM 设置收到会话控制的通知回调
* @param[in] cb 见nim_rts_def.h
* @param[in] user_data APP的自定义用户数据SDK只负责传回给回调函数不做任何处理
* @return void 无返回值
*/
NIM_SDK_DLL_API void nim_rts_set_control_notify_cb_func(nim_rts_control_notify_cb_func cb, const void *user_data);
/** @fn void nim_rts_set_vchat_mode(const char *session_id, int mode, const char *json_extension)
* NIM 设置音视频会话类型
* @param[in] session_id 会话id
* @param[in] mode 见NIMRtsVideoChatMode
* @param[in] json_extension 无效的扩展字段
* @return void 无返回值
*/
NIM_SDK_DLL_API void nim_rts_set_vchat_mode(const char *session_id, int mode, const char *json_extension);
//结束相关
/** @fn void nim_rts_hangup(const char *session_id, const char *json_extension, nim_rts_hangup_res_cb_func cb, const void *user_data)
* NIM 结束会话
* @param[in] session_id 会话id
* @param[in] json_extension 无效的扩展字段
* @param[in] cb 见nim_rts_def.h
* @param[in] user_data APP的自定义用户数据SDK只负责传回给回调函数不做任何处理
* @return void 无返回值
*/
NIM_SDK_DLL_API void nim_rts_hangup(const char *session_id, const char *json_extension, nim_rts_hangup_res_cb_func cb, const void *user_data);
/** @fn void nim_rts_set_hangup_notify_cb_func(nim_rts_hangup_notify_cb_func cb, const void *user_data)
* NIM 设置结束会话通知回调,多人的时候结束后对方无通知。
* @param[in] cb 见nim_rts_def.h
* @param[in] user_data APP的自定义用户数据SDK只负责传回给回调函数不做任何处理
* @return void 无返回值
*/
NIM_SDK_DLL_API void nim_rts_set_hangup_notify_cb_func(nim_rts_hangup_notify_cb_func cb, const void *user_data);
//数据相关
/** @fn void nim_rts_send_data(const char *session_id, int channel_type, const char *data, unsigned int size, const char *json_extension)
* NIM 发送数据暂时支持tcp通道建议发送频率在20Hz以下
* @param[in] session_id 会话id
* @param[in] channel_type 通道类型, kNIMRtsChannelTypeVchat通道如果要自定义数据调用nim_device.h中nim_vchat_custom_audio_data和nim_vchat_custom_video_data
* @param[in] data 发送数据
* @param[in] size data的数据长度现在只支持50k的长度
* @param[in] json_extension 可扩展kNIMRtsUid指定发送某人不填则群发
* @return void 无返回值
*/
NIM_SDK_DLL_API void nim_rts_send_data(const char *session_id, int channel_type, const char *data, unsigned int size, const char *json_extension);
/** @fn void nim_rts_set_rec_data_cb_func(nim_rts_rec_data_cb_func cb, const void *user_data)
* NIM 设置监听数据接收回调, kNIMRtsChannelTypeVchat通道要监听音视频数据调用nim_device.h中nim_vchat_set_audio_data_cb和nim_vchat_set_video_data_cb
* @param[in] cb 见nim_rts_def.h
* @param[in] user_data APP的自定义用户数据SDK只负责传回给回调函数不做任何处理
* @return void 无返回值
*/
NIM_SDK_DLL_API void nim_rts_set_rec_data_cb_func(nim_rts_rec_data_cb_func cb, const void *user_data);
#ifdef __cplusplus
};
#endif //__cplusplus
#endif //NIM_SDK_DLL_API_NIM_RTS_H_