public VideoChatInfo()
 {
     state      = VChatState.kVChatUnknow;
     channel_id = 0;
     uid        = "";
     chat_mode  = NIMVideoChatMode.kNIMVideoChatModeAudio;
 }
Ejemplo n.º 2
0
        /// <summary>
        /// 设置通话模式,在更改通话模式后,通知底层
        /// </summary>
        /// <param name="mode">音视频通话类型</param>
        /// <returns>true 调用成功,false 调用失败</returns>
        ///
        public static bool SetMode(NIMVideoChatMode mode)
        {
#if NIMAPI_UNDER_WIN_DESKTOP_ONLY || UNITY_STANDALONE_WIN
            return(VChatNativeMethods.nim_vchat_set_talking_mode(mode, ""));
#else
            return(false);
#endif
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 邀请会话
        /// </summary>
        /// <param name="targetId">目标accid</param>
        /// <param name="mode"></param>
        public static void Start(string targetId, NIMVideoChatMode mode)
        {
            var info = new NIMVChatInfo {
                Uids = new List <string> {
                    targetId
                }
            };

            VChatAPI.Start(mode, info);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// 启动点对点通话
        /// </summary>
        /// <param name="mode">启动音视频通话类型</param>
        /// <param name="apns_text">自定义推送字段,填空用默认推送</param>
        /// <param name="info">json扩展封装类,见NIMVChatInfo</param>
        /// <param name="customInfo">自定义信息</param>
        /// <returns> bool true 调用成功,false 调用失败可能有正在进行的通话</returns>
        public static bool Start(NIMVideoChatMode mode, string apns_text, NIMVChatInfo info, string customInfo = null)
        {
            if (info == null)
            {
                info = new NIMVChatInfo();
            }
            string json_extension = info.Serialize();

            return(VChatNativeMethods.nim_vchat_start(mode, apns_text, customInfo, json_extension, IntPtr.Zero));
        }
Ejemplo n.º 5
0
        /// <summary>
        /// 启动点对点通话
        /// </summary>
        /// <param name="mode">启动音视频通话类型</param>
        /// <param name="apns_text">自定义推送字段,填空用默认推送</param>
        /// <param name="info">json扩展封装类,见NIMVChatInfo</param>
        /// <param name="customInfo">自定义信息</param>
        /// <returns> bool true 调用成功,false 调用失败可能有正在进行的通话</returns>
        public static bool Start(NIMVideoChatMode mode, string apns_text, NIMVChatInfo info, string customInfo = null)
        {
#if NIMAPI_UNDER_WIN_DESKTOP_ONLY || UNITY_STANDALONE_WIN
            if (info == null)
            {
                info = new NIMVChatInfo();
            }
            string json_extension = info.Serialize();
            return(VChatNativeMethods.nim_vchat_start(mode, apns_text, customInfo, json_extension, IntPtr.Zero));
#else
            return(false);
#endif
        }
Ejemplo n.º 6
0
        /// <summary>
        /// 加入一个多人房间(进入房间后成员变化等,等同点对点NIMVChatHander)
        /// </summary>
        /// <param name="mode">音视频通话类型</param>
        /// <param name="room_name">房间名</param>
        /// <param name="joinRoomInfo">json封装类,见NIMJoinRoomJsonEx</param>
        /// <param name="cb">cb 结果回调,返回的json_extension扩展字段中包含 "custom_info","session_id"</param>
        /// <returns>bool true 调用成功,false 调用失败可能有正在进行的通话</returns>
        public static bool JoinRoom(NIMVideoChatMode mode, string room_name, NIMJoinRoomJsonEx joinRoomInfo, NIMVChatOpt2Handler cb)
        {
#if NIMAPI_UNDER_WIN_DESKTOP_ONLY || UNITY_STANDALONE_WIN
            if (joinRoomInfo == null)
            {
                joinRoomInfo = new NIMJoinRoomJsonEx();
            }
            string json_extension = joinRoomInfo.Serialize();
            var    ptr            = NimUtility.DelegateConverter.ConvertToIntPtr(cb);
            return(VChatNativeMethods.nim_vchat_join_room(mode, room_name, json_extension, VChatOpt2Cb, ptr));
#else
            return(false);
#endif
        }
Ejemplo n.º 7
0
        /// <summary>
        /// 加入一个多人房间(进入房间后成员变化等,等同点对点NIMVChatHander)
        /// </summary>
        /// <param name="mode">音视频通话类型</param>
        /// <param name="room_name">房间名</param>
        /// <param name="joinRoomInfo">json封装类,见NIMJoinRoomJsonEx</param>
        /// <param name="cb">cb 结果回调,返回的json_extension扩展字段中包含 "custom_info","session_id"</param>
        /// <returns>bool true 调用成功,false 调用失败可能有正在进行的通话</returns>
        public static bool JoinRoom(NIMVideoChatMode mode, string room_name, NIMJoinRoomJsonEx joinRoomInfo, NIMVChatOpt2Handler cb)
        {
            if (joinRoomInfo == null)
            {
                joinRoomInfo = new NIMJoinRoomJsonEx();
#if NIMAPI_UNDER_WIN_DESKTOP_ONLY
                CustomLayout layout = new CustomLayout();
                layout.Hostarea     = new HostArea();
                layout.Background   = new BackGround();
                joinRoomInfo.Layout = layout.Serialize();
#endif
            }
            string json_extension = joinRoomInfo.Serialize();
            var    ptr            = NimUtility.DelegateConverter.ConvertToIntPtr(cb);
            return(VChatNativeMethods.nim_vchat_join_room(mode, room_name, json_extension, VChatOpt2Cb, ptr));
        }
Ejemplo n.º 8
0
 private static extern bool nim_vchat_set_talking_mode(NIMVideoChatMode mode,
                                                       [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(NimUtility.Utf8StringMarshaler))] string json_extension);
Ejemplo n.º 9
0
 private static extern bool nim_vchat_start(NIMVideoChatMode mode,
                                            [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(NimUtility.Utf8StringMarshaler))] string apns_text,
                                            [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(NimUtility.Utf8StringMarshaler))] string custom_info,
                                            [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(NimUtility.Utf8StringMarshaler))] string json_extension, IntPtr user_data);
Ejemplo n.º 10
0
 /// <summary>
 /// 设置通话模式,在更改通话模式后,通知底层
 /// </summary>
 /// <param name="mode">音视频通话类型</param>
 /// <returns></returns>
 public static bool SetMode(NIMVideoChatMode mode)
 {
     return(nim_vchat_set_talking_mode(mode, ""));
 }
Ejemplo n.º 11
0
        /// <summary>
        /// 启动通话
        /// </summary>
        /// <param name="mode">启动音视频通话类型</param>
        /// <param name="json_extension">扩展,kNIMVChatUids成员id列表(必填),其他可选 如{"uids":["uid_temp"],"custom_video":0, "custom_audio":0}</param>
        /// <returns></returns>
        public static bool Start(NIMVideoChatMode mode, NIMVChatInfo info)
        {
            string json_extension = info.Serialize();

            return(nim_vchat_start(mode, null, null, json_extension, IntPtr.Zero));
        }
Ejemplo n.º 12
0
 internal static extern bool nim_vchat_join_room(
     NIMVideoChatMode mode,
     [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(NimUtility.Utf8StringMarshaler))] string room_name,
     [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(NimUtility.Utf8StringMarshaler))] string json_extension,
     NimVchatOpt2CbFunc cb,
     IntPtr user_data);
Ejemplo n.º 13
0
 /// <summary>
 /// 加入一个多人房间(进入房间后成员变化等,等同点对点nim_vchat_cb_func)
 /// </summary>
 /// <param name="room_name"></param>
 /// <param name="json_extension"></param>
 /// <param name="cb"></param>
 /// <param name="user_data"></param>
 /// <returns></returns>
 public static bool JoinRoom(NIMVideoChatMode mode, string room_name, string json_extension, nim_vchat_opt2_cb_func cb, IntPtr user_data)
 {
     return(nim_vchat_join_room(mode, room_name, json_extension, cb, user_data));
 }
Ejemplo n.º 14
0
        /// <summary>
        /// 加入一个多人房间(进入房间后成员变化等,等同点对点nim_vchat_cb_func)
        /// </summary>
        /// <param name="room_name"></param>
        /// <param name="json_extension"></param>
        /// <param name="cb"></param>
        /// <param name="user_data"></param>
        /// <returns></returns>
        public static bool JoinRoom(NIMVideoChatMode mode, string room_name, string json_extension, nim_vchat_opt2_cb_func cb, IntPtr user_data)
        {
            var ptr = NimUtility.DelegateConverter.ConvertToIntPtr(cb);

            return(VChatNativeMethods.nim_vchat_join_room(mode, room_name, json_extension, VChatOpt2Cb, ptr));
        }
Ejemplo n.º 15
0
 /// <summary>
 /// 设置通话模式,在更改通话模式后,通知底层
 /// </summary>
 /// <param name="mode">音视频通话类型</param>
 /// <returns></returns>
 public static bool SetMode(NIMVideoChatMode mode)
 {
     return(VChatNativeMethods.nim_vchat_set_talking_mode(mode, ""));
 }