Ejemplo n.º 1
0
        /// <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);
        }
Ejemplo n.º 2
0
        /// <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);
        }
Ejemplo n.º 3
0
        /// <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);
        }
Ejemplo n.º 4
0
        /// <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);
        }
Ejemplo n.º 5
0
        public static void SetReceiveDataCallback(OnRecData callback)
        {
            var ptr = DelegateConverter.ConvertToIntPtr(callback);

            RtsNativeMethods.nim_rts_set_rec_data_cb_func(RecDataCb, ptr);
        }
Ejemplo n.º 6
0
        public static void SetHungupNotify(OnHangupNotify cb)
        {
            var ptr7 = DelegateConverter.ConvertToIntPtr(cb);

            RtsNativeMethods.nim_rts_set_hangup_notify_cb_func(HangupNotifyCb, ptr7);
        }
Ejemplo n.º 7
0
        public static void SetControlNotifyCallback(OnControlNotify cb)
        {
            var ptr6 = DelegateConverter.ConvertToIntPtr(cb);

            RtsNativeMethods.nim_rts_set_control_notify_cb_func(ControlNotifyCb, ptr6);
        }
Ejemplo n.º 8
0
 /// <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);
 }
Ejemplo n.º 9
0
        public static void SetSyncAckNotifyCallback(OnSyncAckNotify cb)
        {
            var ptr3 = DelegateConverter.ConvertToIntPtr(cb);

            RtsNativeMethods.nim_rts_set_sync_ack_notify_cb_func(SyncAckNotifyCb, ptr3);
        }
Ejemplo n.º 10
0
        public static void SetAckNotifyCallback(OnAckNotify cb)
        {
            var ptr2 = DelegateConverter.ConvertToIntPtr(cb);

            RtsNativeMethods.nim_rts_set_ack_notify_cb_func(AckNotifyCb, ptr2);
        }
Ejemplo n.º 11
0
        public static void SetStartNotifyCallback(OnStartNotify cb)
        {
            var ptr1 = DelegateConverter.ConvertToIntPtr(cb);

            RtsNativeMethods.nim_rts_set_start_notify_cb_func(StartNotifyCb, ptr1);
        }
Ejemplo n.º 12
0
        /// <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);
        }
Ejemplo n.º 13
0
        /// <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);
        }
Ejemplo n.º 14
0
        /// <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);
        }
Ejemplo n.º 15
0
 /// <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, "");
 }
Ejemplo n.º 16
0
        public static void SetMemberChangedNotifyCallback(OnMemberNotify cb)
        {
            var ptr5 = DelegateConverter.ConvertToIntPtr(cb);

            RtsNativeMethods.nim_rts_set_member_change_cb_func(MemberChangeCb, ptr5);
        }
Ejemplo n.º 17
0
        /// <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);
        }
Ejemplo n.º 18
0
 /// <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, "");
 }