NIM SDK API  9.0.0
nim_cpp_vchat.h
Go to the documentation of this file.
1 
7 #ifndef _NIM_SDK_CPP_VCHAT_H_
8 #define _NIM_SDK_CPP_VCHAT_H_
9 
10 #include <functional>
11 #include <string>
13 #include "nim_define_include.h"
14 #include "public_defines.h"
19 namespace nim {
21 struct NIM_SDK_CPPWRAPPER_DLL_API NetDetectCbInfo {
22  int32_t res_code_;
23  int32_t loss_;
24  int32_t rtt_max_;
25  int32_t rtt_min_;
26  int32_t rtt_avg_;
27  int32_t rtt_mdev_;
28  std::string expand_info_;
29 
30  NetDetectCbInfo() {
31  res_code_ = 0;
32  loss_ = 0;
33  rtt_max_ = 0;
34  rtt_min_ = 0;
35  rtt_avg_ = 0;
36  rtt_mdev_ = 0;
37  }
38 };
39 class NIM_SDK_CPPWRAPPER_DLL_API VChat {
40 public:
41  typedef std::function<void(int, NetDetectCbInfo)> NetDetectCallback;
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);
56 
66  static void SetProxy(NIMProxyType type, const std::string& host, int port, const std::string& user, const std::string& password);
67 
72  static void Cleanup();
73 
88  static uint64_t NetDetect(NetDetectCallback cb);
89 
107  static uint64_t NetDetectEx(int32_t ms_limit, nim::NIMNetDetectType type, nim::NIMNetDetectVideoQuality quality_type, NetDetectCallback cb);
108 
116  static void VChatRate(int rating, const std::string& description, OptCallback cb);
117 
124  static void EnumDeviceDevpath(nim::NIMDeviceType type, nim_vchat_enum_device_devpath_sync_cb_func cb);
125 
136  static void StartDevice(nim::NIMDeviceType type,
137  const std::string& device_path,
138  unsigned fps,
139  int width,
140  int height,
141  nim_vchat_start_device_cb_func cb);
142 
148  static void EndDevice(nim::NIMDeviceType type);
149 
156  static void AddDeviceStatusCb(nim::NIMDeviceType type, nim_vchat_device_status_cb_func cb);
157 
163  static void RemoveDeviceStatusCb(nim::NIMDeviceType type);
164 
171  static void SetAudioDataCb(bool capture, nim_vchat_audio_data_cb_func cb);
172 
180  static void SetAudioDataCbEx(int type, std::string json_extension, nim_vchat_audio_data_cb_func_ex cb);
181 
188  static void SetVideoDataCb(bool capture, nim_vchat_video_data_cb_func cb);
189 
196  static void SetAudioVolumn(unsigned char volumn, bool capture);
197 
203  static unsigned char GetAudioVolumn(bool capture);
204 
210  static void SetAudioInputAutoVolumn(bool auto_volumn);
211 
216  static bool GetAudioInputAutoVolumn();
217 
225  static void SetAudioProcess(bool aec, bool ns, bool vad);
226 
234  static void PreloadEffect(int id, const std::string& path, EffectOptCallback cb);
235 
243  static void PlayEffect(int id, int loop_count, EffectOptCallback cb);
244 
251  static void StopEffect(int id, EffectOptCallback cb);
252 
261  static void SetCbFunc(nim_vchat_cb_func cb);
262 
272  static bool Start(NIMVideoChatMode mode, const std::string& apns_text, const std::string& custom_info, const std::string& json_info);
273 
280  static bool SetTalkingMode(NIMVideoChatMode mode, const std::string& json_extension);
281 
290  static bool CalleeAck(uint64_t channel_id, bool accept, const std::string& json_extension);
291 
298  static bool Control(uint64_t channel_id, NIMVChatControlType type);
299 
311  static void StartRecord(const std::string& path, const std::string& uid, Mp4OptCallback cb);
312 
321  static void StopRecord(const std::string& uid, Mp4OptCallback cb);
322 
333  static void StartAudioRecord(const std::string& path, AudioRecordCallback cb);
334 
342  static void StopAudioRecord(AudioRecordCallback cb);
343 
349  static void End(const std::string& json_extension);
350 
357  static void Relogin(const std::string& session_id, OptCallback cb);
358 
366  static void SetVideoQuality(int video_quality);
367 
375  static void SetVideoBitrate(int video_bitrate);
376 
384  static void SetFrameRate(NIMVChatVideoFrameRate frame_rate);
385 
394  static void SetCustomData(bool custom_audio, bool custom_video);
395 
404  static bool CustomAudioData(uint64_t time, const char* data, unsigned int size, const char* json_extension);
405 
421  static bool CustomVideoData(uint64_t time,
422  const char* data,
423  unsigned int size,
424  unsigned int width,
425  unsigned int height,
426  const char* json_extension);
427 
445  static bool AccompanyingSound(unsigned char id,
446  uint64_t time,
447  const char* data,
448  unsigned int size,
449  unsigned int rate,
450  unsigned int channels,
451  const char* json_extension);
452 
458  static void SetViewerMode(bool viewer);
459 
464  static bool GetViewerMode();
465 
470  static NIMVChatConnectStatus GetConnectStatus();
471 
477  static void SetAudioMuted(bool muted);
478 
483  static bool GetAudioMuteEnabled();
484 
490  static void SetAudioPlayMuted(bool muted);
491 
496  static bool GetAudioMutePlayEnabled();
497 
503  static void SetRotateRemoteVideo(bool rotate);
504 
509  static bool IsRotateRemoteVideo();
510 
516  static void SetVideoFrameScaleType(NIMVChatVideoFrameScaleType type);
517 
522  static int GetVideoFrameScaleType();
523 
535  static void SetMemberBlacklist(const std::string& uid, bool add, bool audio, const std::string& json_extension, OptCallback cb);
536 
548  static void CreateRoom(const std::string& room_name, const std::string& custom_info, const std::string& json_extension, Opt2Callback cb);
549 
559  static bool JoinRoom(NIMVideoChatMode mode, const std::string& room_name, const std::string& json_extension, Opt2Callback cb);
560 
569  static void UpdateRtmpUrl(const std::string& rtmp_url, OptCallback cb);
570 
579  static void SelectVideoAdaptiveStrategy(NIMVChatVideoEncodeMode mode, const std::string& json_extension, OptCallback cb);
580 
597  static void SetUidAsMainPicture(const std::string& uid, const std::string& json_extension, OptCallback cb);
598 
599  // 订阅
606  static bool SetAutoPublish(bool auto_pub, bool auto_sub);
607 
612  static bool IsAutoPublishVideo();
613 
618  static bool IsAutoSubscribeVideo();
619 
624  static bool IsAutoSubscribeAudio();
625 
631  static bool SetLocalVideoSimulcastMode(NIMVChatPublishVideoStreamMode video_stream_mode);
632 
639  static void PublishVideo(OptCallback cb);
640 
647  static void UnpublishVideo(OptCallback cb);
648 
656  static void SubscribeVideo(const std::string& uid, OptCallback cb);
657 
665  static void UnsubscribeVideo(const std::string& uid, OptCallback cb);
666 
674  static void SubscribeAudio(bool sub, OptCallback cb);
675 
682  static void SetRemoteAudioDataCb(RemoteAudioDataCallback cb);
683 
691  static void AddRemoteAudioDataCb(const std::string& uid, OptCallback cb);
692 
700  static void RemoveRemoteAudioDataCb(const std::string& uid, OptCallback cb);
701 };
702 } // namespace nim
703 
704 #endif //_NIM_SDK_CPP_VCHAT_H_
nim::VChat::Opt2Callback
std::function< void(int code, int64_t channel_id, const std::string &json_extension)> Opt2Callback
Definition: nim_cpp_vchat.h:45
nim::VChat::Mp4OptCallback
std::function< void(bool ret, int code, const std::string &file, int64_t time)> Mp4OptCallback
Definition: nim_cpp_vchat.h:42
nim::NetDetectCbInfo::res_code_
int32_t res_code_
Definition: nim_cpp_vchat.h:22
nim::NetDetectCbInfo
网络探测回调信息
Definition: nim_cpp_vchat.h:21
nim
namespace nim
nim::VChat
Definition: nim_cpp_vchat.h:39
nim::VChat::AudioRecordCallback
Mp4OptCallback AudioRecordCallback
Definition: nim_cpp_vchat.h:43
nim::VChat::NetDetectCallback
std::function< void(int, NetDetectCbInfo)> NetDetectCallback
Definition: nim_cpp_vchat.h:41
nim::VChat::RemoteAudioDataCallback
std::function< void(const std::string &accid, uint64_t time, const char *data, uint32_t size, int32_t channels, int32_t rate)> RemoteAudioDataCallback
Definition: nim_cpp_vchat.h:48
nim_sdk_cpp_wrapper.h
定义导出宏
nim::VChat::EffectOptCallback
std::function< void(int id, bool ret, int code, const std::string &json_extension)> EffectOptCallback
Definition: nim_cpp_vchat.h:46
nim::VChat::OptCallback
std::function< void(bool ret, int code, const std::string &json_extension)> OptCallback
Definition: nim_cpp_vchat.h:44