void Start() { #if (UNITY_2018_3_OR_NEWER && UNITY_ANDROID) permissionList.Add(Permission.Microphone); permissionList.Add(Permission.Camera); permissionList.Add(Permission.ExternalStorageRead); permissionList.Add(Permission.ExternalStorageWrite); #endif #if UNITY_STANDALONE_WIN || UNITY_STANDALONE_OSX Screen.fullScreen = false; Application.wantsToQuit += OnApplicationGoingToQuit; #endif mControlButton = GameObject.Find("ControlButton").GetComponent <Button>(); //mControlButton.onClick.AddListener(OnControlButtonClicked); GameObject go = GameObject.Find("LocalVideoCube"); VideoDisplaySurface surface = go.AddComponent <VideoDisplaySurface>(); go = GameObject.Find("RemoteVideoCube"); surface = go.AddComponent <VideoDisplaySurface>(); //create alirtc engine string extra = ""; mRtcEngine = IAliRtcEngine.GetEngine(extra); //set callback #if UNITY_STANDALONE_WIN || UNITY_STANDALONE_OSX IAliRtcEngine.OnJoinChannelNotify = onJoinChannelNotify; IAliRtcEngine.OnPublishNotify = onPublishNotify; IAliRtcEngine.OnSubscribeNotify = onSubscribeNotify; IAliRtcEngine.OnRemoteUserOnLineNotify = onRemoteUserOnLineNotify; IAliRtcEngine.OnRemoteUserOffLineNotify = onRemoteUserOffLineNotify; IAliRtcEngine.OnRemoteTrackAvailableNotify = onRemoteTrackAvailableNotify; IAliRtcEngine.OnSubscribeChangedNotify = onSubscribeChangedNotify; IAliRtcEngine.OnLeaveChannelResultNotify = onLeaveChannelResultNotify; #else mRtcEngine.OnJoinChannelNotify = onJoinChannelNotify; mRtcEngine.OnPublishNotify = onPublishNotify; mRtcEngine.OnSubscribeNotify = onSubscribeNotify; mRtcEngine.OnRemoteUserOnLineNotify = onRemoteUserOnLineNotify; mRtcEngine.OnRemoteUserOffLineNotify = onRemoteUserOffLineNotify; mRtcEngine.OnRemoteTrackAvailableNotify = onRemoteTrackAvailableNotify; mRtcEngine.OnSubscribeChangedNotify = onSubscribeChangedNotify; mRtcEngine.OnLeaveChannelResultNotify = onLeaveChannelResultNotify; #endif //set auto publish and subscribe mRtcEngine.SetAutoPublish(true, true); }