NIM PC Cross Platform SDK
nim::VChat Class Reference

Public Types

typedef std::function< void(int, NetDetectCbInfo)> NetDetectCallback
 网络探测回调模板
 
typedef std::function< void(bool ret, int code, const std::string &file, int64_t time)> Mp4OptCallback
 MP4录制事件通知回调模板
 
typedef Mp4OptCallback AudioRecordCallback
 音频录制事件通知回调模板
 
typedef std::function< void(bool ret, int code, const std::string &json_extension)> OptCallback
 操作回调模板
 
typedef std::function< void(int code, int64_t channel_id, const std::string &json_extension)> Opt2Callback
 操作回调模板
 
typedef std::function< void(int id, bool ret, int code, const std::string &json_extension)> EffectOptCallback
 操作回调模板
 
typedef std::function< void(const std::string &accid, uint64_t time, const char *data, uint32_t size, int32_t channels, int32_t rate)> RemoteAudioDataCallback
 远端音频数据回调
 

Static Public Member Functions

static bool Init (const std::string &server_setting_path)
 
static void SetProxy (NIMProxyType type, const std::string &host, int port, const std::string &user, const std::string &password)
 
static void Cleanup ()
 
static uint64_t NetDetect (NetDetectCallback cb)
 
static uint64_t NetDetectEx (int32_t ms_limit, nim::NIMNetDetectType type, nim::NIMNetDetectVideoQuality quality_type, NetDetectCallback cb)
 
static void VChatRate (int rating, const std::string &description, OptCallback cb)
 
static void EnumDeviceDevpath (nim::NIMDeviceType type, nim_vchat_enum_device_devpath_sync_cb_func cb)
 
static void StartDevice (nim::NIMDeviceType type, const std::string &device_path, unsigned fps, int width, int height, nim_vchat_start_device_cb_func cb)
 
static void EndDevice (nim::NIMDeviceType type)
 
static void AddDeviceStatusCb (nim::NIMDeviceType type, nim_vchat_device_status_cb_func cb)
 
static void RemoveDeviceStatusCb (nim::NIMDeviceType type)
 
static void SetAudioDataCb (bool capture, nim_vchat_audio_data_cb_func cb)
 
static void SetAudioDataCbEx (int type, std::string json_extension, nim_vchat_audio_data_cb_func_ex cb)
 
static void SetVideoDataCb (bool capture, nim_vchat_video_data_cb_func cb)
 
static void SetAudioVolumn (unsigned char volumn, bool capture)
 
static unsigned char GetAudioVolumn (bool capture)
 
static void SetAudioInputAutoVolumn (bool auto_volumn)
 
static bool GetAudioInputAutoVolumn ()
 
static void SetAudioProcess (bool aec, bool ns, bool vad)
 
static void PreloadEffect (int id, const std::string &path, EffectOptCallback cb)
 
static void PlayEffect (int id, int loop_count, EffectOptCallback cb)
 
static void StopEffect (int id, EffectOptCallback cb)
 
static void SetCbFunc (nim_vchat_cb_func cb)
 
static bool Start (NIMVideoChatMode mode, const std::string &apns_text, const std::string &custom_info, const std::string &json_info)
 
static bool SetTalkingMode (NIMVideoChatMode mode, const std::string &json_extension)
 
static bool CalleeAck (uint64_t channel_id, bool accept, const std::string &json_extension)
 
static bool Control (uint64_t channel_id, NIMVChatControlType type)
 
static void StartRecord (const std::string &path, const std::string &uid, Mp4OptCallback cb)
 
static void StopRecord (const std::string &uid, Mp4OptCallback cb)
 
static void StartAudioRecord (const std::string &path, AudioRecordCallback cb)
 
static void StopAudioRecord (AudioRecordCallback cb)
 
static void End (const std::string &json_extension)
 
static void Relogin (const std::string &session_id, OptCallback cb)
 
static void SetVideoQuality (int video_quality)
 
static void SetVideoBitrate (int video_bitrate)
 
static void SetFrameRate (NIMVChatVideoFrameRate frame_rate)
 
static void SetCustomData (bool custom_audio, bool custom_video)
 
static bool CustomAudioData (uint64_t time, const char *data, unsigned int size, const char *json_extension)
 
static bool CustomVideoData (uint64_t time, const char *data, unsigned int size, unsigned int width, unsigned int height, const char *json_extension)
 
static bool AccompanyingSound (unsigned char id, uint64_t time, const char *data, unsigned int size, unsigned int rate, unsigned int channels, const char *json_extension)
 
static void SetViewerMode (bool viewer)
 
static bool GetViewerMode ()
 
static NIMVChatConnectStatus GetConnectStatus ()
 
static void SetAudioMuted (bool muted)
 
static bool GetAudioMuteEnabled ()
 
static void SetAudioPlayMuted (bool muted)
 
static bool GetAudioMutePlayEnabled ()
 
static void SetRotateRemoteVideo (bool rotate)
 
static bool IsRotateRemoteVideo ()
 
static void SetVideoFrameScaleType (NIMVChatVideoFrameScaleType type)
 
static int GetVideoFrameScaleType ()
 
static void SetMemberBlacklist (const std::string &uid, bool add, bool audio, const std::string &json_extension, OptCallback cb)
 
static void CreateRoom (const std::string &room_name, const std::string &custom_info, const std::string &json_extension, Opt2Callback cb)
 
static bool JoinRoom (NIMVideoChatMode mode, const std::string &room_name, const std::string &json_extension, Opt2Callback cb)
 
static void UpdateRtmpUrl (const std::string &rtmp_url, OptCallback cb)
 
static void SelectVideoAdaptiveStrategy (NIMVChatVideoEncodeMode mode, const std::string &json_extension, OptCallback cb)
 
static void SetUidAsMainPicture (const std::string &uid, const std::string &json_extension, OptCallback cb)
 
static bool SetAutoPublish (bool auto_pub, bool auto_sub)
 
static bool IsAutoPublishVideo ()
 
static bool IsAutoSubscribeVideo ()
 
static bool IsAutoSubscribeAudio ()
 
static bool SetLocalVideoSimulcastMode (NIMVChatPublishVideoStreamMode video_stream_mode)
 
static void PublishVideo (OptCallback cb)
 
static void UnpublishVideo (OptCallback cb)
 
static void SubscribeVideo (const std::string &uid, OptCallback cb)
 
static void UnsubscribeVideo (const std::string &uid, OptCallback cb)
 
static void SubscribeAudio (bool sub, OptCallback cb)
 
static void SetRemoteAudioDataCb (RemoteAudioDataCallback cb)
 
static void AddRemoteAudioDataCb (const std::string &uid, OptCallback cb)
 
static void RemoveRemoteAudioDataCb (const std::string &uid, OptCallback cb)
 

Member Function Documentation

◆ AccompanyingSound()

static bool nim::VChat::AccompanyingSound ( unsigned char  id,
uint64_t  time,
const char *  data,
unsigned int  size,
unsigned int  rate,
unsigned int  channels,
const char *  json_extension 
)
static

NIM VCHAT 自定义音频伴音数据接口,不需要打开自定义数据开关, 采样时间必须为10ms的整数倍, 采样位深只支持16

Parameters
[in]id伴音数据id
[in]time时间毫秒级
[in]data音频数据pcm格式
[in]sizedata的数据长度
[in]rate音频采样频
[in]channels声道数
[in]json_extension扩展
Returns
bool true 调用成功,false 调用失败

◆ AddDeviceStatusCb()

static void nim::VChat::AddDeviceStatusCb ( nim::NIMDeviceType  type,
nim_vchat_device_status_cb_func  cb 
)
static

NIM VCHAT DEVICE 添加设备监听(摄像头和麦克风) 注意监听设备后底层会定时检查设备情况,在不需要监听后请移除

Parameters
[in]typeNIMDeviceType(kNIMDeviceTypeAudioIn和kNIMDeviceTypeVideo有效) 见nim_device_def.h
[in]cb结果回调见nim_device_def.h
Returns
void 无返回值

◆ AddRemoteAudioDataCb()

void nim::VChat::AddRemoteAudioDataCb ( const std::string &  uid,
OptCallback  cb 
)
static

通话中设置用户远端数据回调 该成员加入通话后设置才有效,否则cb会返回失败,数据回调由SetRemoteAudioDataCb接口设置

Parameters
[in]uid用户账号
[in]cb接口调用结果。
Returns
void 无返回值

◆ CalleeAck()

static bool nim::VChat::CalleeAck ( uint64_t  channel_id,
bool  accept,
const std::string &  json_extension 
)
static

NIM VCHAT 回应音视频通话邀请,异步回调nim_vchat_cb_func 见nim_vchat_def.h

Parameters
[in]channel_id音视频通话通道id
[in]accepttrue 接受,false 拒绝
[in]json_extensionJson string 扩展,kNIMVChatCustomVideo自主视频数据和kNIMVChatCustomAudio自主音频 如{"custom_video":1, "custom_audio":1}
Returns
bool true 调用成功,false 调用失败(可能channel_id无匹配,如要接起另一路通话前先结束当前通话)

◆ Cleanup()

static void nim::VChat::Cleanup ( )
static

NIM VCHAT清理,需要在SDK的nim_client_cleanup之前

Returns
void 无返回值

◆ Control()

static bool nim::VChat::Control ( uint64_t  channel_id,
NIMVChatControlType  type 
)
static

NIM VCHAT 音视频通话控制,异步回调nim_vchat_cb_func 见nim_vchat_def.h

Parameters
[in]channel_id音视频通话通道id
[in]typeNIMVChatControlType 见nim_vchat_def.h
Returns
bool true 调用成功,false 调用失败

◆ CreateRoom()

static void nim::VChat::CreateRoom ( const std::string &  room_name,
const std::string &  custom_info,
const std::string &  json_extension,
Opt2Callback  cb 
)
static

NIM VCHAT 创建一个多人房间(后续需要主动调用加入接口进入房间)

Parameters
[in]room_name房间名
[in]custom_info自定义的房间信息(加入房间的时候会返回)
[in]json_extension房间配置信息,详见nim_vchat_def.h,eg.{"room_config":{"rtmpTasks":[{"taskId":"stream_1","streamUrl":"rtmp://test.url","layoutMode":"0","layoutPara":{"k1":"v1"},"record":true,"accid":"123"}]}}
[in]cb结果回调见nim_vchat_def.h,返回的json_extension无效
Returns
void 无返回值
Note
错误码 200:成功 417:提示已经创建好频道

◆ CustomAudioData()

static bool nim::VChat::CustomAudioData ( uint64_t  time,
const char *  data,
unsigned int  size,
const char *  json_extension 
)
static

NIM VCHAT 自定义音频数据接口, 采样位深只支持16或32,[Linux sdk只支持16] kNIMDeviceSampleRate支持8000,16000,32000,44100

Parameters
[in]time时间毫秒级,暂时无效
[in]data音频数据pcm格式
[in]sizedata的数据长度
[in]json_extension扩展Json string kNIMDeviceSampleRate采样频和kNIMDeviceSampleBit采样位深 默认如{"sample_rate":16000, "sample_bit":16}
Returns
bool true 调用成功,false 调用失败

◆ CustomVideoData()

static bool nim::VChat::CustomVideoData ( uint64_t  time,
const char *  data,
unsigned int  size,
unsigned int  width,
unsigned int  height,
const char *  json_extension 
)
static

NIM VCHAT 自定义视频数据接口

Parameters
[in]time时间毫秒级,暂时无效
[in]data视频数据, 默认为yuv420格式
[in]sizedata的数据长度
[in]width画面宽度,必须是偶数
[in]height画面高度,必须是偶数
[in]json_extension扩展Json string,kNIMVideoSubType视频数据格式(缺省为kNIMVideoSubTypeI420)
Returns
bool true 调用成功,false 调用失败

◆ End()

static void nim::VChat::End ( const std::string &  json_extension)
static

NIM VCHAT 结束通话(需要主动在通话结束后调用,用于底层挂断和清理数据)

Parameters
[in]json_extension扩展字段
Returns
void 无返回值

◆ EndDevice()

static void nim::VChat::EndDevice ( nim::NIMDeviceType  type)
static

NIM VCHAT DEVICE 结束设备

Parameters
[in]typeNIMDeviceType 见nim_device_def.h
Returns
void 无返回值

◆ EnumDeviceDevpath()

static void nim::VChat::EnumDeviceDevpath ( nim::NIMDeviceType  type,
nim_vchat_enum_device_devpath_sync_cb_func  cb 
)
static

NIM VCHAT DEVICE 遍历设备

Parameters
[in]typeNIMDeviceType 见nim_device_def.h
[in]cb结果回调见nim_device_def.h
Returns
void 无返回值

◆ GetAudioInputAutoVolumn()

static bool nim::VChat::GetAudioInputAutoVolumn ( )
static

NIM VCHAT DEVICE 获取是否自动调节麦克风音量

Returns
bool true 标识麦克风音量自动调节,false 标识麦克风音量不调节,这时nim_vchat_set_audio_volumn中麦克风音量参数起效

◆ GetAudioMuteEnabled()

static bool nim::VChat::GetAudioMuteEnabled ( )
static

NIM VCHAT 获取音频发送静音状态

Returns
bool true 静音,false 不静音

◆ GetAudioMutePlayEnabled()

static bool nim::VChat::GetAudioMutePlayEnabled ( )
static

NIM VCHAT 获取音频播放静音状态

Returns
bool true 静音,false 不静音

◆ GetAudioVolumn()

static unsigned char nim::VChat::GetAudioVolumn ( bool  capture)
static

NIM VCHAT DEVICE 获取nim_vchat_set_audio_volumn中设置的音量

Parameters
[in]capturetrue 标识获取麦克风音量,false 标识获取播放音量
Returns
unsigned char 音量值

◆ GetConnectStatus()

static NIMVChatConnectStatus nim::VChat::GetConnectStatus ( )
static

NIM VCHAT 获取当前通话状态

Returns
NIMVChatConnectStatus 通话连接状态枚举

◆ GetVideoFrameScaleType()

int nim::VChat::GetVideoFrameScaleType ( )
static

NIM VCHAT 获取视频画面的裁剪模式

Returns
int 返回NIMVChatVideoFrameScaleType

◆ GetViewerMode()

static bool nim::VChat::GetViewerMode ( )
static

NIM VCHAT 获取当前是否是观众模式

Returns
bool true 观众模式,false 非观众模式

◆ Init()

static bool nim::VChat::Init ( const std::string &  json_info)
static

NIM VCHAT初始化,需要在SDK的nim_client_init成功之后

Parameters
[in]server_setting_path服务器配置文件路径
Returns
bool 初始化结果,如果是false则以下所有接口调用无效

◆ IsAutoPublishVideo()

bool nim::VChat::IsAutoPublishVideo ( )
static

获取通话设置中是否自动发布视频数据

Returns
bool 是否自动发布

◆ IsAutoSubscribeAudio()

bool nim::VChat::IsAutoSubscribeAudio ( )
static

获取通话设置中是否自动订阅音频数据

Returns
bool 是否自动订阅

◆ IsAutoSubscribeVideo()

bool nim::VChat::IsAutoSubscribeVideo ( )
static

获取通话设置中是否自动订阅视频数据

Returns
bool 是否自动订阅

◆ IsRotateRemoteVideo()

bool nim::VChat::IsRotateRemoteVideo ( )
static

NIM VCHAT 获取自动旋转对方画面设置状态

Returns
bool true 自动旋转,false 不旋转

◆ JoinRoom()

static bool nim::VChat::JoinRoom ( NIMVideoChatMode  mode,
const std::string &  room_name,
const std::string &  json_extension,
Opt2Callback  cb 
)
static

NIM VCHAT 加入一个多人房间(进入房间后成员变化等,等同点对点nim_vchat_cb_func)

Parameters
[in]modeNIMVideoChatMode 音视频通话类型 见nim_vchat_def.h
[in]room_name房间名
[in]json_extension可选 如{"custom_video":0, "custom_audio":0, "video_quality":0, "session_id":"1231sda"}
[in]cb结果回调见nim_vchat_def.h,返回的json_extension扩展字段中包含 kNIMVChatCustomInfo,kNIMVChatSessionId
Returns
bool true 调用成功,false 调用失败可能有正在进行的通话
Note
错误码 200:成功

◆ NetDetect()

uint64_t nim::VChat::NetDetect ( NetDetectCallback  cb)
static

音视频网络探测

Parameters
[in]cb操作结果的回调函数
Returns
uint64_t 探测任务id
Note
错误码 200:成功 0:流程错误 400:非法请求格式 417:请求数据不对 606:ip为内网ip 607:频率超限 20001:探测类型错误 20002:ip错误 20003:sock错误

◆ NetDetectEx()

uint64_t nim::VChat::NetDetectEx ( int32_t  ms_limit,
nim::NIMNetDetectType  type,
nim::NIMNetDetectVideoQuality  quality_type,
NetDetectCallback  cb 
)
static

音视频网络探测扩展

Parameters
[in]ms_limit探测的时间限制,大于零有效
[in]type探测类型
[in]quality_type视频探测类型
[in]cb操作结果的回调函数
Returns
uint64_t 探测任务id
Note
错误码 200:成功 0:流程错误 400:非法请求格式 417:请求数据不对 606:ip为内网ip 607:频率超限 20001:探测类型错误 20002:ip错误 20003:sock错误

◆ PlayEffect()

void nim::VChat::PlayEffect ( int  id,
int  loop_count,
EffectOptCallback  cb 
)
static

NIM VCHAT DEVICE 播放音效,由kNIMDeviceTypeAudioOutChat播放

Parameters
[in]id音效id
[in]loop_count播放次数,0无效,小于零无限循环
[in]cb结果回调;异步回调操作结果,成功则在播放结束后回调;当音效未加载或者前一次同一个id的音效未播放完成,则失败
Returns
void 无返回值

◆ PreloadEffect()

void nim::VChat::PreloadEffect ( int  id,
const std::string &  path,
EffectOptCallback  cb 
)
static

NIM VCHAT DEVICE 预加载音效文件(空路径时为移除),音效个数限制5个,时长限制10秒;暂时只支持wav和mp3格式

Parameters
[in]id音效id,重复时覆盖
[in]path音效文件的本地路径,如果填空为移除音效
[in]cb结果回调
Returns
void 无返回值

◆ PublishVideo()

void nim::VChat::PublishVideo ( OptCallback  cb)
static

通话中设置自己的视频数据发布接口。通话未发起时设置失败。 回调结果只代表本地的操作结果,远端是否成功等对应的通知kNIMVChatNotifyPublishVideoRet

Parameters
[in]cb操作结果,错误码见NIMVChatPubSubErrorCode。
Returns
void 无返回值

◆ Relogin()

static void nim::VChat::Relogin ( const std::string &  session_id,
OptCallback  cb 
)
static

NIM VCHAT 重连

Parameters
[in]session_id会话的本地session id
[in]cb操作结果
Returns
void 无返回值

◆ RemoveDeviceStatusCb()

static void nim::VChat::RemoveDeviceStatusCb ( nim::NIMDeviceType  type)
static

NIM VCHAT DEVICE 移除设备监听(摄像头和麦克风)

Parameters
[in]typeNIMDeviceType(kNIMDeviceTypeAudioIn和kNIMDeviceTypeVideo有效) 见nim_device_def.h
Returns
void 无返回值

◆ RemoveRemoteAudioDataCb()

void nim::VChat::RemoveRemoteAudioDataCb ( const std::string &  uid,
OptCallback  cb 
)
static

通话中取消用户远端数据回调 该成员加入通话后设置才有效,否则cb会返回失败

Parameters
[in]uid用户账号
[in]cb接口调用结果。
Returns
void 无返回值

◆ SelectVideoAdaptiveStrategy()

static void nim::VChat::SelectVideoAdaptiveStrategy ( NIMVChatVideoEncodeMode  mode,
const std::string &  json_extension,
OptCallback  cb 
)
static

NIM VCHAT 通话中修改视频编码模式

Parameters
[in]mode选用的策略模式
[in]json_extension无效扩展字段
[in]cb结果回调见nim_chat_def.h,返回的json_extension无效
Returns
void 无返回值
Note
错误码 200:成功

◆ SetAudioDataCb()

static void nim::VChat::SetAudioDataCb ( bool  capture,
nim_vchat_audio_data_cb_func  cb 
)
static

NIM VCHAT DEVICE 监听音频数据(可以不监听,通过启动设备kNIMDeviceTypeAudioOut和kNIMDeviceTypeAudioOutChat由底层播放)

Parameters
[in]capturetrue 标识监听麦克风采集数据,false 标识监听通话中对方音频数据
[in]cb结果回调见nim_device_def.h
Returns
void 无返回值

◆ SetAudioDataCbEx()

static void nim::VChat::SetAudioDataCbEx ( int  type,
std::string  json,
nim_vchat_audio_data_cb_func_ex  cb 
)
static

NIM VCHAT DEVICE 监听音频数据扩展接口

Parameters
[in]type指定NIMAudioDataCbType,监听伴音数据
[in]json_extension参考NIMAudioDataCbType的说明
[in]cb结果回调见nim_device_def.h
Returns
void 无返回值

◆ SetAudioInputAutoVolumn()

static void nim::VChat::SetAudioInputAutoVolumn ( bool  auto_volumn)
static

NIM VCHAT DEVICE 设置麦克风音量自动调节

Parameters
[in]auto_volumntrue 标识麦克风音量自动调节,false 标识麦克风音量不调节,这时nim_vchat_set_audio_volumn中麦克风音量参数起效
Returns
void 无返回值

◆ SetAudioMuted()

static void nim::VChat::SetAudioMuted ( bool  muted)
static

NIM VCHAT 设置音频发送静音,全局有效(重新发起时也生效)

Parameters
[in]mutedtrue 静音,false 不静音
Returns
void 无返回值

◆ SetAudioPlayMuted()

static void nim::VChat::SetAudioPlayMuted ( bool  muted)
static

NIM VCHAT 设置音频播放静音,全局有效(重新发起时也生效);不影响底层解码录制等

Parameters
[in]mutedtrue 静音,false 不静音
Returns
void 无返回值

◆ SetAudioProcess()

static void nim::VChat::SetAudioProcess ( bool  aec,
bool  ns,
bool  vad 
)
static

NIM VCHAT DEVICE 设置底层针对麦克风采集数据处理开关接口,默认全开(此接口是全局接口,在sdk初始化后设置一直有效)

Parameters
[in]aectrue 标识打开回音消除功能,false 标识关闭
[in]nstrue 标识打开降噪功能,false 标识关闭
[in]vadtrue 标识打开人言检测功能,false 标识关闭
Returns
void 无返回值

◆ SetAudioVolumn()

static void nim::VChat::SetAudioVolumn ( unsigned char  volumn,
bool  capture 
)
static

NIM VCHAT DEVICE 设置音量 默认255,且音量均由软件换算得出,设置麦克风音量自动调节后麦克风音量参数无效

Parameters
[in]volumn结果回调见nim_device_def.h
[in]capturetrue 标识设置麦克风音量,false 标识设置播放音量
Returns
void 无返回值

◆ SetAutoPublish()

bool nim::VChat::SetAutoPublish ( bool  auto_pub,
bool  auto_sub 
)
static

设置通话中自动订阅对端新加入成员音视频数据,及通话开启后自动发布视频数据的逻辑;音频发布由sdk控制,如果要不发音频单独使用静音接口。该接口仅限于通话前设置,通话中设置失败。

Parameters
[in]auto_pub是否自动发布视频数据,默认开启;其中音频不支持设置自动发布功能,强制发布。自动发布时,PublishVideo接口会调用失败。
[in]auto_sub是否自动订阅音视频数据,默认开启;自动订阅时SubscribeVideo、SubscribeAudio会调用失败。
Returns
bool 是否调用成功

◆ SetCbFunc()

static void nim::VChat::SetCbFunc ( nim_vchat_cb_func  cb)
static

NIM VCHAT 设置通话回调或者服务器通知

Parameters
[in]cb结果回调见nim_vchat_def.h
Returns
void 无返回值
Note
错误码 200:成功 9103:已经在其他端接听/拒绝过这通电话 11001:通话不可送达,对方离线状态

◆ SetCustomData()

static void nim::VChat::SetCustomData ( bool  custom_audio,
bool  custom_video 
)
static

NIM 通话中修改自定义音视频数据模式

Parameters
[in]custom_audiotrue表示使用自定义的音频数据,false表示不使用
[in]custom_videotrue表示使用自定义的视频数据,false表示不使用
Returns
void 无返回值
Note
错误码 0:成功 11403:无效的操作

◆ SetFrameRate()

void nim::VChat::SetFrameRate ( NIMVChatVideoFrameRate  frame_rate)
static

NIM 实时设置视频发送帧率上限

Parameters
[in]frame_rate帧率类型 见NIMVChatVideoFrameRate定义
Returns
void 无返回值
Note
错误码 0:成功 11403:无效的操作

◆ SetLocalVideoSimulcastMode()

bool nim::VChat::SetLocalVideoSimulcastMode ( NIMVChatPublishVideoStreamMode  video_stream_mode)
static

设置本地默认发布的视频流模式,默认为单流(自动发布模式下有效)

Parameters
[in]video_stream_mode目前仅支持单/双流模式。
Returns
bool 是否调用成功

◆ SetMemberBlacklist()

static void nim::VChat::SetMemberBlacklist ( const std::string &  uid,
bool  add,
bool  audio,
const std::string &  json_extension,
OptCallback  cb 
)
static

NIM VCHAT 设置单个成员的黑名单状态,当前通话有效(只能设置进入过房间的成员)

Parameters
[in]uid成员account
[in]addtrue表示添加到黑名单,false表示从黑名单移除
[in]audiotrue表示音频黑名单,false表示视频黑名单
[in]json_extension无效扩展字段
[in]cb结果回调见nim_vchat_def.h,返回的json_extension无效
Returns
void 无返回值
Note
错误码 0:成功 11403:无效的操作

◆ SetProxy()

void nim::VChat::SetProxy ( NIMProxyType  type,
const std::string &  host,
int  port,
const std::string &  user,
const std::string &  password 
)
static

设置SDK音视频的网络代理,暂时只支持socks5代理,全局代理接口也能设置音视频的代理,两接口没有优先级区别。不需要代理时,type设置为kNIMProxyNone,其余参数都传空字符串(端口设为0)。有些代理不需要用户名和密码,相应参数也传空字符串。

Parameters
[in]type代理类型,见NIMProxyType定义,其中音视频和白板暂时只支持kNIMProxySocks5代理
[in]host代理地址
[in]port代理端口
[in]user代理用户名
[in]password代理密码
Returns
void 无返回值

◆ SetRemoteAudioDataCb()

nim::VChat::SetRemoteAudioDataCb ( RemoteAudioDataCallback  cb)
static

全局设置远端音频数据回调接口, 针对不同用户的数据回调都由该接口返回,不允许回调使用过程中修改;该数据回调为同步回调,需要保证快速处理,防止影响音频播放。

Parameters
[in]cb数据回调接口RemoteAudioDataCallback。
Returns
void 无返回值

◆ SetRotateRemoteVideo()

void nim::VChat::SetRotateRemoteVideo ( bool  rotate)
static

NIM VCHAT 设置不自动旋转对方画面,默认打开,全局有效(重新发起时也生效)

Parameters
[in]rotatetrue 自动旋转,false 不旋转
Returns
void 无返回值

◆ SetTalkingMode()

static bool nim::VChat::SetTalkingMode ( NIMVideoChatMode  mode,
const std::string &  json_extension 
)
static

NIM VCHAT 设置通话模式,在更改通话模式后,通知底层

Parameters
[in]modeNIMVideoChatMode 音视频通话类型 见nim_vchat_def.h
[in]json_extension无效的扩展字段
Returns
bool true 调用成功,false 调用失败

◆ SetUidAsMainPicture()

static void nim::VChat::SetUidAsMainPicture ( const std::string &  uid,
const std::string &  json_extension,
OptCallback  cb 
)
static

NIM VCHAT 互动直播模式设置uid为房间内的主画面

Parameters
[in]uid用户uid
[in]json_extension无效扩展字段
[in]cb结果回调见nim_chat_def.h,返回的json_extension无效
Returns
void 无返回值
Note
错误码 200:成功 400:非法请求格式 401: 认证错误 404:房间不存在 405:房间下的uid不存在 417:请求数据不对 500: 内部错误 600:服务器内部错误 11403:无效的操作

◆ SetVideoBitrate()

void nim::VChat::SetVideoBitrate ( int  video_bitrate)
static

NIM 通话中修改视频码率,有效区间[100kb,5000kb],如果设置video_bitrate为0则取默认码率

Parameters
[in]video_bitrate视频码率值
Returns
void 无返回值
Note
错误码 0:成功 11403:无效的操作

◆ SetVideoDataCb()

static void nim::VChat::SetVideoDataCb ( bool  capture,
nim_vchat_video_data_cb_func  cb 
)
static

NIM VCHAT DEVICE 监听视频数据

Parameters
[in]capturetrue 标识监听采集数据,false 标识监听通话中对方视频数据
[in]cb结果回调见nim_device_def.h
Returns
void 无返回值

◆ SetVideoFrameScaleType()

void nim::VChat::SetVideoFrameScaleType ( NIMVChatVideoFrameScaleType  type)
static

NIM VCHAT 设置发送时视频画面的长宽比例裁剪模式,裁剪的时候不改变横竖屏(重新发起时也生效)

Parameters
[in]type裁剪模式NIMVChatVideoFrameScaleType
Returns
void 无返回值

◆ SetVideoQuality()

static void nim::VChat::SetVideoQuality ( int  video_quality)
static

NIM 通话中修改分辨率

Parameters
[in]video_quality分辨率模式
Returns
void 无返回值
Note
错误码 0:成功 11403:无效的操作

◆ SetViewerMode()

static void nim::VChat::SetViewerMode ( bool  viewer)
static

NIM VCHAT 设置观众模式(多人模式下),全局有效(重新发起时也生效),观众模式能减少运行开销

Parameters
[in]viewer是否观众模式
Returns
void 无返回值

◆ Start()

static bool nim::VChat::Start ( NIMVideoChatMode  mode,
const std::string &  apns_text,
const std::string &  custom_info,
const std::string &  json_info 
)
static

NIM VCHAT 启动通话,异步回调nim_vchat_cb_func 见nim_vchat_def.h

Parameters
[in]modeNIMVideoChatMode 启动音视频通话类型 见nim_vchat_def.h
[in]apns_text推送文本
[in]custom_info自定义信息
[in]json_infoJson string 扩展,kNIMVChatUids成员id列表,kNIMVChatCustomVideo自主视频数据和kNIMVChatCustomAudio自主音频 如{"uids":["uid_temp"],"custom_video":1, "custom_audio":1}
Returns
bool true 调用成功,false 调用失败可能有正在进行的通话

◆ StartAudioRecord()

static void nim::VChat::StartAudioRecord ( const std::string &  path,
AudioRecordCallback  cb 
)
static

NIM 开始录制音频文件,一次只允许录制一个音频文件,在通话开始的时候才有实际数据

Parameters
[in]path文件录制路径
[in]cb结果回调
Returns
void 无返回值
Note
错误码 200:文件创建 400:文件已经存在 403:文件创建失败 404:通话不存在

◆ StartDevice()

static void nim::VChat::StartDevice ( nim::NIMDeviceType  type,
const std::string &  device_path,
unsigned  fps,
int  width,
int  height,
nim_vchat_start_device_cb_func  cb 
)
static

NIM VCHAT DEVICE 启动设备,同一NIMDeviceType下设备将不重复启动,不同的设备会先关闭前一个设备开启新设备

Parameters
[in]typeNIMDeviceType 见nim_device_def.h
[in]device_path可选参数,通过EnumDeviceDevpath遍历得到的设备路径。空则底层取默认设备
[in]fps摄像头为采样频率,其他NIMDeviceType无效(麦克风采样频率由底层控制,播放器采样频率也由底层控制)
[in]width摄像头采集宽度期望值,取0则底层选默认值
[in]height摄像头采集高度期望值,取0则底层选默认值
[in]cb结果回调见nim_device_def.h
Returns
void 无返回值

◆ StartRecord()

static void nim::VChat::StartRecord ( const std::string &  path,
const std::string &  uid,
Mp4OptCallback  cb 
)
static

NIM 开始录制MP4文件,一个成员一次只允许录制一个MP4文件,在通话开始的时候才有实际数据

Parameters
[in]path文件录制路径
[in]uid录制的成员,如果是自己填空
[in]cb结果回调
Returns
void 无返回值
Note
错误码 200:MP4文件创建 400:MP4文件已经存在 403:MP4文件创建失败 404:通话不存在

◆ StopAudioRecord()

static void nim::VChat::StopAudioRecord ( AudioRecordCallback  cb)
static

NIM 停止录制音频文件

Parameters
[in]cb结果回调
Returns
void 无返回值
Note
错误码 0:结束 404:通话不存在

◆ StopEffect()

void nim::VChat::StopEffect ( int  id,
EffectOptCallback  cb 
)
static

NIM VCHAT DEVICE 结束播放音效

Parameters
[in]id音效id
[in]cb结果回调
Returns
void 无返回值

◆ StopRecord()

static void nim::VChat::StopRecord ( const std::string &  uid,
Mp4OptCallback  cb 
)
static

NIM 停止录制MP4文件

Parameters
[in]uid录制的成员,如果是自己填空
[in]cb结果回调
Returns
void 无返回值
Note
错误码 0:MP4结束 404:通话不存在

◆ SubscribeAudio()

void nim::VChat::SubscribeAudio ( bool  sub,
OptCallback  cb 
)
static

通话中设置订阅音频数据,默认自动订阅。音频数据没有单独订阅某一成员的接口。通话未发起时设置失败。 回调结果只代表本地的操作结果,远端是否成功等对应的通知kNIMVChatNotifySubscribeAudioRet及kNIMVChatNotifyUnsubscribeAudioRet

Parameters
[in]sub是否订阅音频数据
[in]cb结果回调错误码见NIMVChatPubSubErrorCode。
Returns
void 无返回值

◆ SubscribeVideo()

void nim::VChat::SubscribeVideo ( const std::string &  uid,
OptCallback  cb 
)
static

通话中设置订阅某一方的视频数据,针对同一成员的设置如果还未返回则重复设置失败,通话未发起时设置失败。 回调结果只代表本地的操作结果,远端是否成功等对应的通知kNIMVChatNotifySubscribeVideoRet

Parameters
[in]uid用户账号
[in]cb结果回调错误码见NIMVChatPubSubErrorCode。
Returns
void 无返回值

◆ UnpublishVideo()

void nim::VChat::UnpublishVideo ( OptCallback  cb)
static

通话中设置自己的视频数据取消发布接口。该接口仅限于多人通话模式,且通话未发起时设置失败。 回调结果只代表本地的操作结果,远端是否成功等对应的通知kNIMVChatNotifyUnpublishVideoRet

Parameters
[in]cb操作结果,错误码见NIMVChatPubSubErrorCode。
Returns
void 无返回值

◆ UnsubscribeVideo()

void nim::VChat::UnsubscribeVideo ( const std::string &  uid,
OptCallback  cb 
)
static

通话中设置取消订阅某一方的视频数据,针对同一成员的设置如果还未返回则重复设置失败,通话未发起时设置失败。 回调结果只代表本地的操作结果,远端是否成功等对应的通知NIMVChatNotifyUnsubscribeVideoRet

Parameters
[in]uid用户账号
[in]cb结果回调错误码见NIMVChatPubSubErrorCode。
Returns
void 无返回值

◆ UpdateRtmpUrl()

void nim::VChat::UpdateRtmpUrl ( const std::string &  rtmp_url,
OptCallback  cb 
)
static

NIM 通话中修改直播推流地址(主播有效)

Parameters
[in]rtmp_url新的rtmp推流地址
[in]cb结果回调见nim_vchat_def.h,返回的json_extension无效
Returns
void 无返回值
Note
错误码 0:成功 11403:无效的操作

◆ VChatRate()

void nim::VChat::VChatRate ( int  rating,
const std::string &  description,
OptCallback  cb 
)
static

打分反馈

Parameters
[in]rating评分,分值为1-5
[in]description问题描述
[in]cb反馈结果回调
Returns
void 无返回值

The documentation for this class was generated from the following files: