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

320 lines
18 KiB
C
Raw Normal View History

2018-07-16 02:33:31 +00:00
/** @file nim_vchat.h
* @brief
* @copyright (c) 2015-2017, NetEase Inc. All rights reserved
* @author gq
* @date 2015/4/30
*/
#ifndef NIM_SDK_DLL_API_NIM_VCHAT_H_
#define NIM_SDK_DLL_API_NIM_VCHAT_H_
#include "nim_sdk_dll.h"
#include "../export_headers/nim_vchat_def.h"
#include "../util/stdbool.h"
#ifdef __cplusplus
extern"C"
{
#endif
/** @fn bool nim_vchat_init(const char *json_extension)
* NIM VCHAT初始化SDK的nim_client_init成功之后
* @param[in] json_extension
* @return bool false则以下所有接口调用无效
*/
NIM_SDK_DLL_API bool nim_vchat_init(const char *json_extension);
/** @fn bool nim_vchat_cleanup(const char *json_extension)
* NIM VCHAT清理SDK的nim_client_cleanup之前
* @param[in] json_extension
* @return void
*/
NIM_SDK_DLL_API void nim_vchat_cleanup(const char *json_extension);
//通话相关
/** @fn void nim_vchat_set_cb_func(nim_vchat_cb_func cb, const void *user_data)
* NIM VCHAT
* @param[in] cb nim_vchat_def.h
* @param[in] user_data APP的自定义用户数据SDK只负责传回给回调函数cb
* @return void
* @note 200:
* 9103:/
* 11001:线
*/
NIM_SDK_DLL_API void nim_vchat_set_cb_func(nim_vchat_cb_func cb, const void *user_data);
/** @fn bool nim_vchat_start(NIMVideoChatMode mode, const char *apns_text, const char *custom_info, const char *json_extension, const void *user_data)
* NIM VCHAT nim_vchat_cb_func nim_vchat_def.h
* @param[in] mode NIMVideoChatMode nim_vchat_def.h
* @param[in] apns_text
* @param[in] custom_info
* @param[in] json_extension Json string kNIMVChatUids成员id列表(), {"uids":["uid_temp"],"custom_video":0, "custom_audio":0, "video_quality":0, "session_id":"1231sda"}
* @param[in] user_data
* @return bool true false
*/
NIM_SDK_DLL_API bool nim_vchat_start(enum NIMVideoChatMode mode, const char *apns_text, const char *custom_info, const char *json_extension, const void *user_data);
//回应邀请
/** @fn bool nim_vchat_callee_ack(int64_t channel_id, bool accept, const char *json_extension, const void *user_data)
* NIM VCHAT nim_vchat_cb_func nim_vchat_def.h
* @param[in] channel_id id
* @param[in] accept true false
* @param[in] json_extension json string, {"custom_video":0, "custom_audio":0, "video_quality":0, "session_id":"1231sda"}
* @param[in] user_data
* @return bool true false channel_id无匹配
*/
NIM_SDK_DLL_API bool nim_vchat_callee_ack(int64_t channel_id, bool accept, const char *json_extension, const void *user_data);
/** @fn bool nim_vchat_control(int64_t channel_id, NIMVChatControlType type, const char *json_extension, const void *user_data)
* NIM VCHAT nim_vchat_cb_func nim_vchat_def.h
* @param[in] channel_id id
* @param[in] type NIMVChatControlType nim_vchat_def.h
* @param[in] json_extension
* @param[in] user_data
* @return bool true false
*/
NIM_SDK_DLL_API bool nim_vchat_control(int64_t channel_id,enum NIMVChatControlType type, const char *json_extension, const void *user_data);
/** @fn void nim_vchat_set_viewer_mode(bool viewer)
* NIM VCHAT
* @param[in] viewer
* @return void
*/
NIM_SDK_DLL_API void nim_vchat_set_viewer_mode(bool viewer);
/** @fn bool nim_vchat_get_viewer_mode()
* NIM VCHAT
* @return bool true false
*/
NIM_SDK_DLL_API bool nim_vchat_get_viewer_mode();
/** @fn void nim_vchat_set_audio_mute(bool muted)
* NIM VCHAT
* @param[in] muted true false
* @return void
*/
NIM_SDK_DLL_API void nim_vchat_set_audio_mute(bool muted);
/** @fn bool nim_vchat_audio_mute_enabled()
* NIM VCHAT
* @return bool true false
*/
NIM_SDK_DLL_API bool nim_vchat_audio_mute_enabled();
/** @fn void nim_vchat_set_member_in_blacklist(const char *uid, bool add, bool audio, const char *json_extension, nim_vchat_opt_cb_func cb, const void *user_data)
* NIM VCHAT ()
* @param[in] uid account
* @param[in] add true表示添加到黑名单false表示从黑名单移除
* @param[in] audio true表示音频黑名单false表示视频黑名单
* @param[in] json_extension
* @param[in] cb nim_vchat_def.hjson_extension无效
* @param[in] user_data APP的自定义用户数据SDK只负责传回给回调函数cb
* @return void
* @note 0:
* 11403:
*/
NIM_SDK_DLL_API void nim_vchat_set_member_in_blacklist(const char *uid, bool add, bool audio, const char *json_extension, nim_vchat_opt_cb_func cb, const void *user_data);
/** @fn void nim_vchat_end(const char *json_extension)
* NIM VCHAT ()
* @param[in] json_extension kNIMVChatSessionIdkNIMVChatSessionId缺省则关闭当前通话
* @return void
*/
NIM_SDK_DLL_API void nim_vchat_end(const char *json_extension);
/** @fn void nim_vchat_create_room(const char *room_name, const char *custom_info, const char *json_extension, nim_vchat_opt2_cb_func cb, const void *user_data)
* NIM VCHAT
* @param[in] room_name
* @param[in] custom_info
* @param[in] json_extension kNIMVChatWebrtc
* @param[in] cb nim_vchat_def.hjson_extension无效
* @param[in] user_data APP的自定义用户数据SDK只负责传回给回调函数cb
* @return void
* @note 200:
* 417:
*/
NIM_SDK_DLL_API void nim_vchat_create_room(const char *room_name, const char *custom_info, const char *json_extension, nim_vchat_opt2_cb_func cb, const void *user_data);
/** @fn bool nim_vchat_join_room(NIMVideoChatMode mode, const char *room_name, const char *json_extension, nim_vchat_opt2_cb_func cb, const void *user_data)
* NIM VCHAT nim_vchat_cb_func
* @param[in] mode NIMVideoChatMode nim_vchat_def.h
* @param[in] room_name
* @param[in] json_extension {"custom_video":0, "custom_audio":0, "video_quality":0, "session_id":"1231sda", "rtmp_url":"", "bypass_rtmp":0}
* @param[in] cb nim_vchat_def.hjson_extension扩展字段中包含 kNIMVChatCustomInfo,kNIMVChatSessionId
* @param[in] user_data APP的自定义用户数据SDK只负责传回给回调函数cb
* @return bool true false
* @note 200:
*/
NIM_SDK_DLL_API bool nim_vchat_join_room(enum NIMVideoChatMode mode, const char *room_name, const char *json_extension, nim_vchat_opt2_cb_func cb, const void *user_data);
/** @fn void nim_vchat_set_custom_data(bool custom_audio, bool custom_video, const char *json_extension, nim_vchat_opt_cb_func cb, const void *user_data)
* NIM
* @param[in] custom_audio true表示使用自定义的音频数据false表示不使用
* @param[in] custom_video true表示使用自定义的视频数据false表示不使用
* @param[in] json_extension
* @param[in] cb nim_vchat_def.hjson_extension无效
* @param[in] user_data APP的自定义用户数据SDK只负责传回给回调函数cb
* @return void
* @note 0:
* 11403:
*/
NIM_SDK_DLL_API void nim_vchat_set_custom_data(bool custom_audio, bool custom_video, const char *json_extension, nim_vchat_opt_cb_func cb, const void *user_data);
/** @fn bool nim_vchat_set_talking_mode(NIMVideoChatMode mode, const char *json_extension)
* NIM VCHAT
* @param[in] mode NIMVideoChatMode nim_vchat_def.h
* @param[in] json_extension
* @return bool true false
*/
NIM_SDK_DLL_API bool nim_vchat_set_talking_mode(enum NIMVideoChatMode mode, const char *json_extension);
/** @fn void nim_vchat_set_rotate_remote_video(bool rotate)
* NIM VCHAT
* @param[in] rotate true false
* @return void
*/
NIM_SDK_DLL_API void nim_vchat_set_rotate_remote_video(bool rotate);
/** @fn bool nim_vchat_rotate_remote_video_enabled()
* NIM VCHAT
* @return bool true false
*/
NIM_SDK_DLL_API bool nim_vchat_rotate_remote_video_enabled();
/** @fn void nim_vchat_set_video_quality(int video_quality, const char *json_extension, nim_vchat_opt_cb_func cb, const void *user_data)
* NIM
* @param[in] video_quality NIMVChatVideoQuality定义
* @param[in] json_extension
* @param[in] cb nim_vchat_def.hjson_extension无效
* @param[in] user_data APP的自定义用户数据SDK只负责传回给回调函数cb
* @return void
* @note 0:
* 11403:
*/
NIM_SDK_DLL_API void nim_vchat_set_video_quality(int video_quality, const char *json_extension, nim_vchat_opt_cb_func cb, const void *user_data);
/** @fn void nim_vchat_set_video_bitrate(int video_bitrate, const char *json_extension, nim_vchat_opt_cb_func cb, const void *user_data)
* NIM [100kb,2000kb]video_bitrate为0则取默认码率
* @param[in] video_bitrate
* @param[in] json_extension
* @param[in] cb nim_vchat_def.hjson_extension无效
* @param[in] user_data APP的自定义用户数据SDK只负责传回给回调函数cb
* @return void
* @note 0:
* 11403:
*/
NIM_SDK_DLL_API void nim_vchat_set_video_bitrate(int video_bitrate, const char *json_extension, nim_vchat_opt_cb_func cb, const void *user_data);
#if NIMAPI_UNDER_WIN_DESKTOP_ONLY
/** @fn void nim_vchat_net_detect(const char *json_extension, nim_vchat_opt_cb_func cb, const void *user_data)
* sdk初始化时带上app key
* @param[in] json_extension json扩展参数kNIMNetDetectTimeLimitkNIMNetDetectType
* @param[in] cb
* @param[in] user_data APP的自定义用户数据SDK只负责传回给回调函数cb
* @return uint64_t id
* @note 200:
* 0:
* 400:
* 417:
* 606:ip为内网ip
* 607:
* 20001:
* 20002:ip错误
* 20003:sock错误
*/
NIM_SDK_DLL_API uint64_t nim_vchat_net_detect(const char *json_extension, nim_vchat_opt_cb_func cb, const void *user_data);
/** @fn void nim_vchat_set_frame_rate(NIMVChatVideoFrameRate frame_rate, const char* json_extension, nim_vchat_opt_cb_func cb, const void *user_data)
* NIM
* @param[in] frame_rate NIMVChatVideoFrameRate定义
* @param[in] json_extension
* @param[in] cb nim_vchat_def.h
* @param[in] user_data APP的自定义用户数据SDK只负责传回给回调函数cb
* @return void
* @note 0:
* 11403:
*/
NIM_SDK_DLL_API void nim_vchat_set_frame_rate(enum NIMVChatVideoFrameRate frame_rate, const char* json_extension, nim_vchat_opt_cb_func cb, const void *user_data);
/** @fn void nim_vchat_set_video_frame_scale(NIMVChatVideoFrameScaleType type)
* NIM VCHAT
* @param[in] type NIMVChatVideoFrameScaleType
*/
NIM_SDK_DLL_API void nim_vchat_set_video_frame_scale(enum NIMVChatVideoFrameScaleType type);
/** @fn int nim_vchat_get_video_frame_scale_type()
* NIM VCHAT
* @return int NIMVChatVideoFrameScaleType
*/
NIM_SDK_DLL_API int nim_vchat_get_video_frame_scale_type();
/** @fn void nim_vchat_start_record(const char *path, const char *json_extension, nim_vchat_mp4_record_opt_cb_func cb, const void *user_data)
* NIM VCHAT MP4文件MP4录制文件
* @param[in] path
* @param[in] json_extension kNIMVChatUid录制的成员(kNIMVChatMp4AudioType)
* @param[in] cb nim_vchat_def.h
* @param[in] user_data APP的自定义用户数据SDK只负责传回给回调函数cb
* @return void
* @note 200:MP4文件创建
* 400:MP4文件已经存在
* 403:MP4文件创建失败
* 404:
*/
NIM_SDK_DLL_API void nim_vchat_start_record(const char *path, const char *json_extension, nim_vchat_mp4_record_opt_cb_func cb, const void *user_data);
/** @fn void nim_vchat_stop_record(const char *json_extension, nim_vchat_mp4_record_opt_cb_func cb, const void *user_data)
* NIM VCHAT MP4文件
* @param[in] json_extension kNIMVChatUid录制的成员
* @param[in] cb nim_vchat_def.h
* @param[in] user_data APP的自定义用户数据SDK只负责传回给回调函数cb
* @return void
* @note 0:MP4结束
* 404:
*/
NIM_SDK_DLL_API void nim_vchat_stop_record(const char *json_extension, nim_vchat_mp4_record_opt_cb_func cb, const void *user_data);
/** @fn void nim_vchat_start_audio_record(const char *path, const char *json_extension, nim_vchat_audio_record_opt_cb_func cb, const void *user_data)
* NIM VCHAT
* @param[in] path
* @param[in] json_extension
* @param[in] cb nim_vchat_def.h
* @param[in] user_data APP的自定义用户数据SDK只负责传回给回调函数cb
* @return void
*/
NIM_SDK_DLL_API void nim_vchat_start_audio_record(const char *path, const char *json_extension, nim_vchat_audio_record_opt_cb_func cb, const void *user_data);
/** @fn void nim_vchat_stop_audio_record(const char *json_extension, nim_vchat_audio_record_opt_cb_func cb, const void *user_data)
* NIM VCHAT
* @param[in] json_extension
* @param[in] cb nim_vchat_def.h
* @param[in] user_data APP的自定义用户数据SDK只负责传回给回调函数cb
* @return void
*/
NIM_SDK_DLL_API void nim_vchat_stop_audio_record(const char *json_extension, nim_vchat_audio_record_opt_cb_func cb, const void *user_data);
/** @fn void nim_vchat_update_rtmp_url(const char *rtmp_url, const char *json_extension, nim_vchat_opt_cb_func cb, const void *user_data)
* NIM
* @param[in] rtmp_url rtmp推流地址
* @param[in] json_extension
* @param[in] cb nim_vchat_def.hjson_extension无效
* @param[in] user_data APP的自定义用户数据SDK只负责传回给回调函数cb
* @return void
* @note 0:
* 11403:
*/
NIM_SDK_DLL_API void nim_vchat_update_rtmp_url(const char *rtmp_url, const char *json_extension, nim_vchat_opt_cb_func cb, const void *user_data);
#endif
#ifdef __cplusplus
};
#endif //__cplusplus
#endif //NIM_SDK_DLL_API_NIM_VCHAT_H_