7 #ifndef _NIM_SDK_CPP_VCHAT_H_
8 #define _NIM_SDK_CPP_VCHAT_H_
13 #include "nim_define_include.h"
14 #include "public_defines.h"
28 std::string expand_info_;
39 class NIM_SDK_CPPWRAPPER_DLL_API
VChat {
42 typedef std::function<void(
bool ret,
int code,
const std::string& file, int64_t time)>
Mp4OptCallback;
44 typedef std::function<void(
bool ret,
int code,
const std::string& json_extension)>
OptCallback;
45 typedef std::function<void(
int code, int64_t channel_id,
const std::string& json_extension)>
Opt2Callback;
46 typedef std::function<void(
int id,
bool ret,
int code,
const std::string& json_extension)>
EffectOptCallback;
47 typedef std::function<void(
const std::string& accid, uint64_t time,
const char* data, uint32_t size, int32_t channels, int32_t rate)>
55 static bool Init(
const std::string& server_setting_path);
66 static void SetProxy(NIMProxyType type,
const std::string& host,
int port,
const std::string& user,
const std::string& password);
72 static void Cleanup();
107 static uint64_t NetDetectEx(int32_t ms_limit, nim::NIMNetDetectType type, nim::NIMNetDetectVideoQuality quality_type,
NetDetectCallback cb);
116 static void VChatRate(
int rating,
const std::string& description,
OptCallback cb);
124 static void EnumDeviceDevpath(nim::NIMDeviceType type, nim_vchat_enum_device_devpath_sync_cb_func cb);
136 static void StartDevice(nim::NIMDeviceType type,
137 const std::string& device_path,
141 nim_vchat_start_device_cb_func cb);
148 static void EndDevice(nim::NIMDeviceType type);
156 static void AddDeviceStatusCb(nim::NIMDeviceType type, nim_vchat_device_status_cb_func cb);
163 static void RemoveDeviceStatusCb(nim::NIMDeviceType type);
171 static void SetAudioDataCb(
bool capture, nim_vchat_audio_data_cb_func cb);
180 static void SetAudioDataCbEx(
int type, std::string json_extension, nim_vchat_audio_data_cb_func_ex cb);
188 static void SetVideoDataCb(
bool capture, nim_vchat_video_data_cb_func cb);
196 static void SetAudioVolumn(
unsigned char volumn,
bool capture);
203 static unsigned char GetAudioVolumn(
bool capture);
210 static void SetAudioInputAutoVolumn(
bool auto_volumn);
216 static bool GetAudioInputAutoVolumn();
225 static void SetAudioProcess(
bool aec,
bool ns,
bool vad);
234 static void PreloadEffect(
int id,
const std::string& path,
EffectOptCallback cb);
261 static void SetCbFunc(nim_vchat_cb_func cb);
272 static bool Start(NIMVideoChatMode mode,
const std::string& apns_text,
const std::string& custom_info,
const std::string& json_info);
280 static bool SetTalkingMode(NIMVideoChatMode mode,
const std::string& json_extension);
290 static bool CalleeAck(uint64_t channel_id,
bool accept,
const std::string& json_extension);
298 static bool Control(uint64_t channel_id, NIMVChatControlType type);
311 static void StartRecord(
const std::string& path,
const std::string& uid,
Mp4OptCallback cb);
321 static void StopRecord(
const std::string& uid,
Mp4OptCallback cb);
349 static void End(
const std::string& json_extension);
357 static void Relogin(
const std::string& session_id,
OptCallback cb);
366 static void SetVideoQuality(
int video_quality);
375 static void SetVideoBitrate(
int video_bitrate);
384 static void SetFrameRate(NIMVChatVideoFrameRate frame_rate);
394 static void SetCustomData(
bool custom_audio,
bool custom_video);
404 static bool CustomAudioData(uint64_t time,
const char* data,
unsigned int size,
const char* json_extension);
421 static bool CustomVideoData(uint64_t time,
426 const char* json_extension);
445 static bool AccompanyingSound(
unsigned char id,
450 unsigned int channels,
451 const char* json_extension);
458 static void SetViewerMode(
bool viewer);
464 static bool GetViewerMode();
470 static NIMVChatConnectStatus GetConnectStatus();
477 static void SetAudioMuted(
bool muted);
483 static bool GetAudioMuteEnabled();
490 static void SetAudioPlayMuted(
bool muted);
496 static bool GetAudioMutePlayEnabled();
503 static void SetRotateRemoteVideo(
bool rotate);
509 static bool IsRotateRemoteVideo();
516 static void SetVideoFrameScaleType(NIMVChatVideoFrameScaleType type);
522 static int GetVideoFrameScaleType();
535 static void SetMemberBlacklist(
const std::string& uid,
bool add,
bool audio,
const std::string& json_extension,
OptCallback cb);
548 static void CreateRoom(
const std::string& room_name,
const std::string& custom_info,
const std::string& json_extension,
Opt2Callback cb);
559 static bool JoinRoom(NIMVideoChatMode mode,
const std::string& room_name,
const std::string& json_extension,
Opt2Callback cb);
569 static void UpdateRtmpUrl(
const std::string& rtmp_url,
OptCallback cb);
579 static void SelectVideoAdaptiveStrategy(NIMVChatVideoEncodeMode mode,
const std::string& json_extension,
OptCallback cb);
597 static void SetUidAsMainPicture(
const std::string& uid,
const std::string& json_extension,
OptCallback cb);
606 static bool SetAutoPublish(
bool auto_pub,
bool auto_sub);
612 static bool IsAutoPublishVideo();
618 static bool IsAutoSubscribeVideo();
624 static bool IsAutoSubscribeAudio();
631 static bool SetLocalVideoSimulcastMode(NIMVChatPublishVideoStreamMode video_stream_mode);
656 static void SubscribeVideo(
const std::string& uid,
OptCallback cb);
665 static void UnsubscribeVideo(
const std::string& uid,
OptCallback cb);
674 static void SubscribeAudio(
bool sub,
OptCallback cb);
691 static void AddRemoteAudioDataCb(
const std::string& uid,
OptCallback cb);
700 static void RemoveRemoteAudioDataCb(
const std::string& uid,
OptCallback cb);
704 #endif //_NIM_SDK_CPP_VCHAT_H_