|
@@ -25,6 +25,20 @@ public class RTCRoomManager : MonoSingleton<RTCRoomManager>, IController
|
|
|
public JObject controlData;
|
|
|
|
|
|
public bool isRTCreate;
|
|
|
+
|
|
|
+ public GameObject audio1;
|
|
|
+ public GameObject audio2;
|
|
|
+
|
|
|
+ public Dictionary<string, AudioSource> dicAudio;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ public bool isInvite = false;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ public bool isApply = false;
|
|
|
private void Start()
|
|
|
{
|
|
|
this.RegisterEvent<RTCCreatRoomSuccessEvent>(CreatRoomSuccess).UnRegisterWhenGameObjectDestroyed(gameObject);
|
|
@@ -32,6 +46,8 @@ public class RTCRoomManager : MonoSingleton<RTCRoomManager>, IController
|
|
|
rtcState = RTCEnum.OFF;
|
|
|
question = QuestionEnum.NetWork;
|
|
|
isRTCreate = false;
|
|
|
+
|
|
|
+ RTCManager.OnRemoteVideoStateChanged += RemoteVideoStateChanged;
|
|
|
}
|
|
|
private void Update()
|
|
|
{
|
|
@@ -40,7 +56,33 @@ public class RTCRoomManager : MonoSingleton<RTCRoomManager>, IController
|
|
|
isRTCreate = false;
|
|
|
this.GetService<IRTCService>().CreatRoom();
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ private void RemoteVideoStateChanged(string uid, REMOTE_VIDEO_STATE_REASON_RTC state)
|
|
|
+ {
|
|
|
+ Debug.Log("RemoteVideoStateChanged " + uid +" "+ state.ToString());
|
|
|
+ switch (state)
|
|
|
+ {
|
|
|
+ case REMOTE_VIDEO_STATE_REASON_RTC.REMOTE_VIDEO_STATE_REASON_NETWORK_CONGESTION:
|
|
|
+ break;
|
|
|
+ case REMOTE_VIDEO_STATE_REASON_RTC.REMOTE_VIDEO_STATE_REASON_NETWORK_RECOVERY:
|
|
|
+ break;
|
|
|
+ case REMOTE_VIDEO_STATE_REASON_RTC.REMOTE_VIDEO_STATE_REASON_LOCAL_MUTED:
|
|
|
+ break;
|
|
|
+ case REMOTE_VIDEO_STATE_REASON_RTC.REMOTE_VIDEO_STATE_REASON_LOCAL_UNMUTED:
|
|
|
+ break;
|
|
|
+ case REMOTE_VIDEO_STATE_REASON_RTC.REMOTE_VIDEO_STATE_REASON_REMOTE_MUTED:
|
|
|
+ LiveRTCRoomMain.Instance.rtcRawImage.gameObject.SetActive(false);
|
|
|
+ break;
|
|
|
+ case REMOTE_VIDEO_STATE_REASON_RTC.REMOTE_VIDEO_STATE_REASON_REMOTE_UNMUTED:
|
|
|
+ LiveRTCRoomMain.Instance.rtcRawImage.gameObject.SetActive(true);
|
|
|
+ break;
|
|
|
+ case REMOTE_VIDEO_STATE_REASON_RTC.REMOTE_VIDEO_STATE_REASON_REMOTE_OFFLINE:
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ break;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
private void CreatRoomSuccess(RTCCreatRoomSuccessEvent e)
|
|
@@ -56,9 +98,27 @@ public class RTCRoomManager : MonoSingleton<RTCRoomManager>, IController
|
|
|
public void OnLocalUserJoined()
|
|
|
{
|
|
|
|
|
|
+
|
|
|
+ if(isInvite)
|
|
|
+ {
|
|
|
+ isInvite = false;
|
|
|
+ JsonData obj = new JsonData();
|
|
|
+ obj["action"] = "invite";
|
|
|
+ obj["rtcRoom"] = mRTCRoomInfo.roomId.ToString();
|
|
|
+ obj["personnel"] = new JsonData();
|
|
|
+ obj["personnel"]["id"] = MQTTManager.Instance.id;
|
|
|
+ obj["personnel"]["name"] = MQTTManager.Instance._username;
|
|
|
+ obj["personnel"]["resourcePoo1"] = MQTTManager.Instance.resourcePool;
|
|
|
+ obj["personnel"]["room"] = MQTTManager.Instance.room;
|
|
|
+ obj["personnel"]["phone"] = MQTTManager.Instance.phone;
|
|
|
+
|
|
|
+ MQTTManager.Instance.PushMsg(MQTTManager.Instance.front + "online/" + controlPhone, obj.ToJson());
|
|
|
+
|
|
|
+ }
|
|
|
|
|
|
- if (ScenesManager.Instance.getWindow()== ScenesManager.SceneType.ShowRTC)
|
|
|
+ if (isApply)
|
|
|
{
|
|
|
+ isApply = false;
|
|
|
JsonData data = new JsonData();
|
|
|
data["roomId"] = mRTCRoomInfo.roomId.ToString();
|
|
|
data["questionCategory"] = (int)question;
|
|
@@ -77,20 +137,7 @@ public class RTCRoomManager : MonoSingleton<RTCRoomManager>, IController
|
|
|
}
|
|
|
}));
|
|
|
}
|
|
|
- else
|
|
|
- {
|
|
|
- JsonData obj = new JsonData();
|
|
|
- obj["action"] = "invite";
|
|
|
- obj["rtcRoom"] = mRTCRoomInfo.roomId.ToString();
|
|
|
- obj["personnel"] = new JsonData();
|
|
|
- obj["personnel"]["id"] = MQTTManager.Instance.id;
|
|
|
- obj["personnel"]["name"] = MQTTManager.Instance._username;
|
|
|
- obj["personnel"]["resourcePoo1"] = MQTTManager.Instance.resourcePool;
|
|
|
- obj["personnel"]["room"] = MQTTManager.Instance.room;
|
|
|
- obj["personnel"]["phone"] = MQTTManager.Instance.phone;
|
|
|
-
|
|
|
- MQTTManager.Instance.PushMsg(MQTTManager.Instance.front +"online/"+controlPhone, obj.ToJson());
|
|
|
- }
|
|
|
+
|
|
|
|
|
|
|
|
|
|
|
@@ -103,7 +150,7 @@ public class RTCRoomManager : MonoSingleton<RTCRoomManager>, IController
|
|
|
|
|
|
public void UserJoined( UserEnum userEnum , JObject metadata = null)
|
|
|
{
|
|
|
-
|
|
|
+ Debug.Log("DGJ ===> " + rtcState);
|
|
|
switch (userEnum)
|
|
|
{
|
|
|
case UserEnum.Player:
|
|
@@ -239,13 +286,19 @@ public class RTCRoomManager : MonoSingleton<RTCRoomManager>, IController
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
- if(rtcState != RTCEnum.OFF&& !(ScenesManager.Instance.getWindow() == ScenesManager.SceneType.ShowRoom|| ScenesManager.Instance.getWindow() == ScenesManager.SceneType.ShowRTC))
|
|
|
+ if (rtcState != RTCEnum.OFF && !(ScenesManager.Instance.getWindow() == ScenesManager.SceneType.ShowRoom || ScenesManager.Instance.getWindow() == ScenesManager.SceneType.ShowRTC))
|
|
|
{
|
|
|
Debug.Log(" GETWindow Scenes " + ScenesManager.Instance.getWindow());
|
|
|
|
|
|
LeaveChannel();
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
}
|
|
|
|
|
|
public void LeaveChannel()
|