public VideoChatInfo() { state = VChatState.kVChatUnknow; channel_id = 0; uid = ""; chat_mode = NIMVideoChatMode.kNIMVideoChatModeAudio; }
/// <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 }
/// <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); }
/// <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)); }
/// <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 }
/// <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 }
/// <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)); }
private static extern bool nim_vchat_set_talking_mode(NIMVideoChatMode mode, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(NimUtility.Utf8StringMarshaler))] string json_extension);
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);
/// <summary> /// 设置通话模式,在更改通话模式后,通知底层 /// </summary> /// <param name="mode">音视频通话类型</param> /// <returns></returns> public static bool SetMode(NIMVideoChatMode mode) { return(nim_vchat_set_talking_mode(mode, "")); }
/// <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)); }
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);
/// <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)); }
/// <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)); }
/// <summary> /// 设置通话模式,在更改通话模式后,通知底层 /// </summary> /// <param name="mode">音视频通话类型</param> /// <returns></returns> public static bool SetMode(NIMVideoChatMode mode) { return(VChatNativeMethods.nim_vchat_set_talking_mode(mode, "")); }