NIM C# SDK  6.3.0
NIM.VChatAPI Class Reference

Static Public Member Functions

static bool Init (string server_setting_path)
 VCHAT初始化,需要在SDK的Client.Init成功之后 More...
 
static void Cleanup ()
 VCHAT释放,需要在SDK的Client.Cleanup之前 More...
 
static void SetSessionStatusCb (NIMVChatSessionStatus session)
 设置统一的通话回调或者服务器通知 More...
 
static bool Start (NIMVideoChatMode mode, string apns_text, NIMVChatInfo info, string customInfo=null)
 启动点对点通话 More...
 
static bool SetMode (NIMVideoChatMode mode)
 设置通话模式,在更改通话模式后,通知底层 More...
 
static bool CalleeAck (long channel_id, bool accept, NIMVChatInfo info)
 回应音视频通话邀请 More...
 
static bool ChatControl (long channel_id, NIMVChatControlType type)
 音视频通话控制操作 More...
 
static void End (string jsonExtension="")
 结束通话(需要主动在通话结束后调用,用于底层挂断和清理数据) More...
 
static void SetViewerMode (bool viewer)
 设置观众模式(多人模式下),全局有效(重新发起时也生效) More...
 
static bool GetViewerMode ()
 获取当前是否是观众模式 More...
 
static void SetAudioMute (bool muted)
 设置音频静音,全局有效(重新发起时也生效) More...
 
static bool GetAudioMuteEnabled ()
 获取音频静音状态 More...
 
static void SetMemberInBlackList (string uid, bool add, bool audio, string json_extension, NIMVChatOptHandler cb)
 设置单个成员的黑名单状态,即是否显示对方的音频或视频数据,当前通话有效(只能设置进入过房间的成员) More...
 
static void CreateRoom (string room_name, string custom_info, NIMCreateRoomJsonEx createRoomInfo, NIMVChatOpt2Handler cb)
 创建一个多人房间(后续需要主动调用加入接口进入房间) More...
 
static bool JoinRoom (NIMVideoChatMode mode, string room_name, NIMJoinRoomJsonEx joinRoomInfo, NIMVChatOpt2Handler cb)
 加入一个多人房间(进入房间后成员变化等,等同点对点NIMVChatHander) More...
 
static void SetCustomData (bool custom_audio, bool custom_video, string json_extension, NIMVChatOptHandler cb)
 通话中修改自定义音视频数据模式 More...
 
static void StartRecord (string path, NIMVChatMP4RecordJsonEx recordInfo, NIMVChatMp4RecordOptHandler cb)
 开始录制MP4,,同一个成员一次只允许一个MP4录制文件,在通话开始的时候才有实际数据 More...
 
static void StopRecord (NIMVChatMP4RecordJsonEx recordInfo, NIMVChatMp4RecordOptHandler cb)
 停止录制MP4 More...
 
static void StartAudioRecord (string path, NIMVChatAudioRecordOptHandler cb)
 开始录制音频文件,一次只允许一个音频录制文件 More...
 
static void StopAudioRecord (NIMVChatAudioRecordOptHandler cb)
 停止录制音频文件 More...
 
static void SetRotateRemoteVideo (bool rotate)
 设置不自动旋转对方画面,默认打开,全局有效(重新发起时也生效) More...
 
static bool IsRotateRemoteVideo ()
 获取自动旋转对方画面设置状态 More...
 
static void UpdateRtmpUrl (string rtmp_url, string json_extension, NIMVChatOptHandler cb)
 通话中修改直播推流地址(主播有效) More...
 
static void SetVideoQuality (NIMVChatVideoQuality video_quality, string json_extension, NIMVChatOptHandler cb)
 通话中修改发送画面分辨率,发送的分辨率限制只对上限限制,如果数据源小于发送分辨率,不会进行放大 More...
 
static void SetFrameRate (NIMVChatVideoFrameRate frame_rate, string json_extension, NIMVChatOptHandler cb)
 实时设置视频发送帧率上限 More...
 
static ulong DetectNetwork (NIMVChatNetDetectJsonEx json, NIMVChatOptHandler cb)
 音视频网络探测接口,需要在sdk初始化时带上app key More...
 
static void SetVideoFrameScale (NIMVChatVideoFrameScaleType type)
 设置发送时视频画面的长宽比例裁剪模式,裁剪的时候不改变横竖屏(重新发起时也生效) More...
 
static NIMVChatVideoFrameScaleType GetVideoFrameScale ()
 获取视频画面的裁剪模式 More...
 
static void NIMVChatSelectVideoAdaptiveStrategy (NIMVChatVideoEncodeMode mode, string json_extension, NIMVChatOptHandler cb)
 通话中修改视频编码模式 More...
 
static void NIMVChatSetUidPictureAsMain (string uid, string json_extension, NIMVChatOptHandler cb)
 互动直播设置uid为房间主画面 More...
 
static void NIMVChatRelogin (string sessionid, NIMVChatOptHandler cb)
 音视频通话重新连接,用于底层链接在上层认为异常时尝试重连 More...
 
static void NIMVChatSetAudioPlayMute (bool muted)
 设置播放对端音频静音,全局有效(重新发起时也生效);此开关打开不播放,但不影响解码及录制 More...
 
static bool NIMVChatAudioPlayMuteEnabled ()
 获取播放对端音频静音状态 More...
 
static void NIMVChatSetProxy (NIMProxyType type, string host, int port, string user, string password)
 设置SDK音视频的网络代理,暂时只支持socks5代理,全局代理接口也能设置音视频的代理,两接口没有优先级区别。 不需要代理时,type设置为kNIMProxyNone,其余参数都传空字符串(端口设为0)。有些代理不需要用户名和密码,相应参数也传空字符串。 More...
 

Member Function Documentation

◆ CalleeAck()

static bool NIM.VChatAPI.CalleeAck ( long  channel_id,
bool  accept,
NIMVChatInfo  info 
)
static

回应音视频通话邀请

Parameters
channel_id音视频通话通道id
accepttrue 接受,false 拒绝
infojson扩展封装类,见NIMVChatInfo
Returns
bool true 调用成功,false 调用失败(可能channel_id无匹配,如要接起另一路通话前先结束当前通话)

◆ ChatControl()

static bool NIM.VChatAPI.ChatControl ( long  channel_id,
NIMVChatControlType  type 
)
static

音视频通话控制操作

Parameters
channel_id音视频通话通道id
type操作类型
Returns
bool true 调用成功,false 调用失败

◆ Cleanup()

static void NIM.VChatAPI.Cleanup ( )
static

VCHAT释放,需要在SDK的Client.Cleanup之前

Returns
无返回值

◆ CreateRoom()

static void NIM.VChatAPI.CreateRoom ( string  room_name,
string  custom_info,
NIMCreateRoomJsonEx  createRoomInfo,
NIMVChatOpt2Handler  cb 
)
static

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

Parameters
room_name房间名
custom_info自定义的房间信息(加入房间的时候会返回)
createRoomInfojson封装类,见NIMCreateRoomJsonEx
cb结果回调
Returns
无返回值

◆ DetectNetwork()

static ulong NIM.VChatAPI.DetectNetwork ( NIMVChatNetDetectJsonEx  json,
NIMVChatOptHandler  cb 
)
static

音视频网络探测接口,需要在sdk初始化时带上app key

Parameters
json_extension扩展参数,允许用户设置探测时间限制kNIMNetDetectTimeLimit,及探测类型kNIMNetDetectType
cb操作结果的回调函数
Returns
探测任务id

回调函数json_extension keys: "task_id":uint64 任务id "loss":int 丢包率百分比 "rttmax":int rtt 最大值 "rttmin":int rtt 最小值 "rttavg":int rtt 平均值 "rttmdev":int rtt 偏差值 mdev "detailinfo":string 扩展信息

Parameters
user_data
Returns
探测任务id 200:成功 0:流程错误 400:非法请求格式 417:请求数据不对 606:ip为内网ip 607:频率超限 20001:探测类型错误 20002:ip错误 20003:sock错误

◆ End()

static void NIM.VChatAPI.End ( string  jsonExtension = "")
static

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

Parameters
jsonExtension可扩展添加session_id,用于关闭对应的通话,如果session_id缺省.则关闭当前通话.如.{"session_id":"leewp"}
Returns
无返回值

◆ GetAudioMuteEnabled()

static bool NIM.VChatAPI.GetAudioMuteEnabled ( )
static

获取音频静音状态

Returns
bool true 静音,false 不静音

◆ GetVideoFrameScale()

static NIMVChatVideoFrameScaleType NIM.VChatAPI.GetVideoFrameScale ( )
static

获取视频画面的裁剪模式

Returns
当前的裁剪模式NIMVChatVideoFrameScaleType

◆ GetViewerMode()

static bool NIM.VChatAPI.GetViewerMode ( )
static

获取当前是否是观众模式

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

◆ Init()

static bool NIM.VChatAPI.Init ( string  server_setting_path)
static

VCHAT初始化,需要在SDK的Client.Init成功之后

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

◆ IsRotateRemoteVideo()

static bool NIM.VChatAPI.IsRotateRemoteVideo ( )
static

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

Parameters
rotate
Returns
true 自动旋转,false 不旋转

◆ JoinRoom()

static bool NIM.VChatAPI.JoinRoom ( NIMVideoChatMode  mode,
string  room_name,
NIMJoinRoomJsonEx  joinRoomInfo,
NIMVChatOpt2Handler  cb 
)
static

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

Parameters
mode音视频通话类型
room_name房间名
joinRoomInfojson封装类,见NIMJoinRoomJsonEx
cbcb 结果回调,返回的json_extension扩展字段中包含 "custom_info","session_id"
Returns
bool true 调用成功,false 调用失败可能有正在进行的通话

◆ NIMVChatAudioPlayMuteEnabled()

static bool NIM.VChatAPI.NIMVChatAudioPlayMuteEnabled ( )
static

获取播放对端音频静音状态

Returns
bool true 静音,false 不静音

◆ NIMVChatRelogin()

static void NIM.VChatAPI.NIMVChatRelogin ( string  sessionid,
NIMVChatOptHandler  cb 
)
static

音视频通话重新连接,用于底层链接在上层认为异常时尝试重连

Parameters
json_extension可扩展添加kNIMVChatSessionId,用于指定对应的通话
cb操作结果的回调函数,当通话通话不存在或通话

◆ NIMVChatSelectVideoAdaptiveStrategy()

static void NIM.VChatAPI.NIMVChatSelectVideoAdaptiveStrategy ( NIMVChatVideoEncodeMode  mode,
string  json_extension,
NIMVChatOptHandler  cb 
)
static

通话中修改视频编码模式

Parameters
mode选用的策略模式
json_extension无效扩展字段
cb回调函数,code 见

◆ NIMVChatSetAudioPlayMute()

static void NIM.VChatAPI.NIMVChatSetAudioPlayMute ( bool  muted)
static

设置播放对端音频静音,全局有效(重新发起时也生效);此开关打开不播放,但不影响解码及录制

Parameters
mutedmuted true 静音,false 不静音

◆ NIMVChatSetProxy()

static void NIM.VChatAPI.NIMVChatSetProxy ( NIMProxyType  type,
string  host,
int  port,
string  user,
string  password 
)
static

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

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

◆ NIMVChatSetUidPictureAsMain()

static void NIM.VChatAPI.NIMVChatSetUidPictureAsMain ( string  uid,
string  json_extension,
NIMVChatOptHandler  cb 
)
static

互动直播设置uid为房间主画面

Parameters
uid用户uid
json_extension无效扩展字段
cb回调函数

◆ SetAudioMute()

static void NIM.VChatAPI.SetAudioMute ( bool  muted)
static

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

Parameters
mutedtrue 静音,false 不静音
Returns
无返回值

◆ SetCustomData()

static void NIM.VChatAPI.SetCustomData ( bool  custom_audio,
bool  custom_video,
string  json_extension,
NIMVChatOptHandler  cb 
)
static

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

Parameters
custom_audiotrue:表示使用自定义的音频数据.false:表示不使用
custom_videotrue:表示使用自定义的视频数据.false:表示不使用
json_extension无效扩展字段
cbcb 结果回调
Returns
无返回值

◆ SetFrameRate()

static void NIM.VChatAPI.SetFrameRate ( NIMVChatVideoFrameRate  frame_rate,
string  json_extension,
NIMVChatOptHandler  cb 
)
static

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

Parameters
frame_rate帧率类型 见NIMVChatVideoFrameRate定义
json_extensionjson_extension 无效备用
cbcb 结果回调
Returns
无返回值

◆ SetMemberInBlackList()

static void NIM.VChatAPI.SetMemberInBlackList ( string  uid,
bool  add,
bool  audio,
string  json_extension,
NIMVChatOptHandler  cb 
)
static

设置单个成员的黑名单状态,即是否显示对方的音频或视频数据,当前通话有效(只能设置进入过房间的成员)

Parameters
uiduid成员 account
addtrue:添加到黑名单.false:从黑名单中移除
audioture:表示音频黑名单.false:表示视频黑名单
json_extension无效扩展字段
cb返回的json_extension无效
Returns
无返回值

◆ SetMode()

static bool NIM.VChatAPI.SetMode ( NIMVideoChatMode  mode)
static

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

Parameters
mode音视频通话类型
Returns
true 调用成功,false 调用失败

◆ SetRotateRemoteVideo()

static void NIM.VChatAPI.SetRotateRemoteVideo ( bool  rotate)
static

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

Parameters
rotatetrue 自动旋转,false 不旋转
Returns
无返回值

◆ SetSessionStatusCb()

static void NIM.VChatAPI.SetSessionStatusCb ( NIMVChatSessionStatus  session)
static

设置统一的通话回调或者服务器通知

Parameters
session回调通知对象
Returns
无返回值

◆ SetVideoFrameScale()

static void NIM.VChatAPI.SetVideoFrameScale ( NIMVChatVideoFrameScaleType  type)
static

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

Parameters
type裁剪模式NIMVChatVideoFrameScaleType
Returns
无返回值

◆ SetVideoQuality()

static void NIM.VChatAPI.SetVideoQuality ( NIMVChatVideoQuality  video_quality,
string  json_extension,
NIMVChatOptHandler  cb 
)
static

通话中修改发送画面分辨率,发送的分辨率限制只对上限限制,如果数据源小于发送分辨率,不会进行放大

Parameters
video_quality分辨率模式
json_extension无效扩展字段
cb结果回调,返回的json_extension无效
Returns
无返回值

◆ SetViewerMode()

static void NIM.VChatAPI.SetViewerMode ( bool  viewer)
static

设置观众模式(多人模式下),全局有效(重新发起时也生效)

Parameters
viewer是否观众模式
Returns
无返回值

◆ Start()

static bool NIM.VChatAPI.Start ( NIMVideoChatMode  mode,
string  apns_text,
NIMVChatInfo  info,
string  customInfo = null 
)
static

启动点对点通话

Parameters
mode启动音视频通话类型
apns_text自定义推送字段,填空用默认推送
infojson扩展封装类,见NIMVChatInfo
customInfo自定义信息
Returns
bool true 调用成功,false 调用失败可能有正在进行的通话

◆ StartAudioRecord()

static void NIM.VChatAPI.StartAudioRecord ( string  path,
NIMVChatAudioRecordOptHandler  cb 
)
static

开始录制音频文件,一次只允许一个音频录制文件

Parameters
path文件录制路径
cb结果回调
Returns
无返回值

◆ StartRecord()

static void NIM.VChatAPI.StartRecord ( string  path,
NIMVChatMP4RecordJsonEx  recordInfo,
NIMVChatMp4RecordOptHandler  cb 
)
static

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

Parameters
path文件录制路径
recordInfojson扩展封装类,见NIMVChatMP4RecordJsonEx
cb结果回调
Returns
无返回值

◆ StopAudioRecord()

static void NIM.VChatAPI.StopAudioRecord ( NIMVChatAudioRecordOptHandler  cb)
static

停止录制音频文件

Parameters
cb结果回调
Returns
无返回值

◆ StopRecord()

static void NIM.VChatAPI.StopRecord ( NIMVChatMP4RecordJsonEx  recordInfo,
NIMVChatMp4RecordOptHandler  cb 
)
static

停止录制MP4

Parameters
recordInfojson扩展封装类,见NIMVChatMP4RecordJsonEx
cb结果回调
Returns
无返回值

◆ UpdateRtmpUrl()

static void NIM.VChatAPI.UpdateRtmpUrl ( string  rtmp_url,
string  json_extension,
NIMVChatOptHandler  cb 
)
static

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

Parameters
rtmp_url新的rtmp推流地址
json_extension无效扩展字段
cb结果回调,返回的json_extension无效
Returns
无返回值