/// <summary> /// 创建rts会话 /// </summary> /// <param name="channelType"> /// 通道类型 /// 如要tcp+音视频,则channel_type=kNIMRtsChannelTypeTcp|kNIMRtsChannelTypeVchat,同时整个SDK只允许一个音视频通道存在(包括vchat) /// </param> /// <param name="uid">对方帐号</param> /// <param name="info">发起扩展参数</param> /// <param name="startResHandler">结果回调</param> public static void Start(NIMRtsChannelType channelType, string uid, RtsStartInfo info, StartResHandler startResHandler) { var ptr = DelegateConverter.ConvertToIntPtr(startResHandler); var json = info.Serialize(); RtsNativeMethods.nim_rts_start((int)channelType, uid, json, StartResCb, ptr); }
/// <summary> /// 回复收到的邀请 /// </summary> /// <param name="sessionId">会话id</param> /// <param name="channelType">通道类型,暂时无效</param> /// <param name="accept">是否接受</param> /// <param name="info">接受时的发起信息扩展参数</param> /// <param name="ackResHandler">结果回调</param> public static void Ack(string sessionId, NIMRtsChannelType channelType, bool accept, RtsStartInfo info, AckResHandler ackResHandler) { var ptr = DelegateConverter.ConvertToIntPtr(ackResHandler); var json = info == null ? null : info.Serialize(); RtsNativeMethods.nim_rts_ack(sessionId, (int)channelType, accept, json, AckResCb, ptr); }
/// <summary> /// 发送数据,暂时支持tcp通道,建议发送频率在20Hz以下 /// </summary> /// <param name="sessionId">会话id</param> /// <param name="channelType">通道类型</param> /// <param name="data">发送数据</param> /// <param name="size">data的数据长度</param> /// <param name="info">RtsSendDataInfo 发送数据时的json封装类,默认为空</param> public static void SendData(string sessionId, NIMRtsChannelType channelType, IntPtr data, int size, RtsSendDataInfo info = null) { string json_extension = ""; if (info != null) { json_extension = info.Serialize(); } RtsNativeMethods.nim_rts_send_data(sessionId, (int)channelType, data, size, json_extension); }
/// <summary> /// 会话控制(透传) /// </summary> /// <param name="sessionId">会话id</param> /// <param name="info">透传内容</param> /// <param name="controlResHandler">结果回调</param> public static void Control(string sessionId, string info, ControlResHandler controlResHandler) { var ptr = DelegateConverter.ConvertToIntPtr(controlResHandler); RtsNativeMethods.nim_rts_control(sessionId, info, "", ControlResCb, ptr); }
public static void SetReceiveDataCallback(OnRecData callback) { var ptr = DelegateConverter.ConvertToIntPtr(callback); RtsNativeMethods.nim_rts_set_rec_data_cb_func(RecDataCb, ptr); }
public static void SetHungupNotify(OnHangupNotify cb) { var ptr7 = DelegateConverter.ConvertToIntPtr(cb); RtsNativeMethods.nim_rts_set_hangup_notify_cb_func(HangupNotifyCb, ptr7); }
public static void SetControlNotifyCallback(OnControlNotify cb) { var ptr6 = DelegateConverter.ConvertToIntPtr(cb); RtsNativeMethods.nim_rts_set_control_notify_cb_func(ControlNotifyCb, ptr6); }
/// <summary> /// 设置SDK白板的网络代理,暂时只支持socks5代理,全局代理接口也能设置音视频的代理,两接口没有优先级区别。 /// 不需要代理时,type设置为kNIMProxyNone,其余参数都传空字符串(端口设为0)。有些代理不需要用户名和密码,相应参数也传空字符串。 /// </summary> /// <param name="type">代理类型,见NIMProxyType定义,其中音视频和白板暂时只支持kNIMProxySocks5代理</param> /// <param name="host">代理地址</param> /// <param name="port">代理端口</param> /// <param name="user">代理用户名</param> /// <param name="password">代理密码</param> public static void SetProxy(NIMProxyType type, string host, int port, string user, string password) { RtsNativeMethods.nim_rts_set_proxy(type, host, port, user, password); }
public static void SetSyncAckNotifyCallback(OnSyncAckNotify cb) { var ptr3 = DelegateConverter.ConvertToIntPtr(cb); RtsNativeMethods.nim_rts_set_sync_ack_notify_cb_func(SyncAckNotifyCb, ptr3); }
public static void SetAckNotifyCallback(OnAckNotify cb) { var ptr2 = DelegateConverter.ConvertToIntPtr(cb); RtsNativeMethods.nim_rts_set_ack_notify_cb_func(AckNotifyCb, ptr2); }
public static void SetStartNotifyCallback(OnStartNotify cb) { var ptr1 = DelegateConverter.ConvertToIntPtr(cb); RtsNativeMethods.nim_rts_set_start_notify_cb_func(StartNotifyCb, ptr1); }
/// <summary> /// 重连接口 /// </summary> /// <param name="session_id">会话id</param> /// <param name="channel_type">通道类型,暂时只支持白板类型</param> /// <param name="json_extension">无效的扩展字段</param> /// <param name="cb">返回重连操作结果</param> private static void ReLogin(string session_id, int channel_type, string json_extension, NimRtsOptCbFunc cb) { var ptr = DelegateConverter.ConvertToIntPtr(cb); RtsNativeMethods.nim_rts_relogin(session_id, channel_type, json_extension, OnReLoginCallback, ptr); }
/// <summary> /// 加入一个多人房间(进入房间后成员变化等,等同点对点nim_vchat_cb_func) /// </summary> /// <param name="name">房间名</param> /// <param name="json_extension">扩展可选参数kNIMRtsDataRecord,kNIMRtsSessionId, 如{"data_record":1, "session_id":"b76e2b7ae065224499e4d7138d643961"}</param> /// <param name="cb"></param> public static void JoinConference(string name, string json_extension, NimRtsJoinCbFunc cb) { var ptr = DelegateConverter.ConvertToIntPtr(cb); RtsNativeMethods.nim_rts_join_conf(name, json_extension, JoinConfCallback, ptr); }
/// <summary> /// 创建一个多人数据通道房间(后续需要主动调用加入接口进入房间) /// </summary> /// <param name="name">房间名</param> /// <param name="custom_info">自定义的房间信息(加入房间的时候会返回)</param> /// <param name="cb"></param> public static void CreateConference(string name, string custom_info, NimRtsCreateCbFunc cb) { var ptr = DelegateConverter.ConvertToIntPtr(cb); RtsNativeMethods.nim_rts_create_conf(name, custom_info, null, CreateRtsConfCallback, ptr); }
/// <summary> /// 修改音视频的模式 /// </summary> /// <param name="sessionId">会话id</param> /// <param name="mode">音频模式或视频模式</param> public static void SetVChatMode(string sessionId, NIMRtsVideoChatMode mode) { RtsNativeMethods.nim_rts_set_vchat_mode(sessionId, (int)mode, ""); }
public static void SetMemberChangedNotifyCallback(OnMemberNotify cb) { var ptr5 = DelegateConverter.ConvertToIntPtr(cb); RtsNativeMethods.nim_rts_set_member_change_cb_func(MemberChangeCb, ptr5); }
/// <summary> /// 结束会话 /// </summary> /// <param name="sessionId">会话id</param> /// <param name="hangupResHandler">结果回调</param> public static void Hangup(string sessionId, HangupResHandler hangupResHandler) { var ptr = DelegateConverter.ConvertToIntPtr(hangupResHandler); RtsNativeMethods.nim_rts_hangup(sessionId, "", HangupResCb, ptr); }
/// <summary> /// 发送数据,暂时支持tcp通道,建议发送频率在20Hz以下 /// </summary> /// <param name="sessionId">会话id</param> /// <param name="channelType">通道类型</param> /// <param name="data">发送数据</param> /// <param name="size">data的数据长度</param> public static void SendData(string sessionId, NIMRtsChannelType channelType, IntPtr data, int size) { RtsNativeMethods.nim_rts_send_data(sessionId, (int)channelType, data, size, ""); }