Beispiel #1
0
 private void onUserOffline(uint uid, UserOfflineReason reason)
 {
     this.Dispatcher.Invoke(() =>
     {
         int offlineUser = userList.FindIndex((x) => x == uid);
         m_engine.setupRemoteVideo(uid, new IntPtr(0), RenderMode.RenderMode_Hidden);
     });
 }
        internal void OnUserOffline(AgoraRtcEngineKit engine, nuint uid, UserOfflineReason reason)
        {
            var id = (uint)uid;

            _knownStreams.Remove(id);
            var toClear  = _containers.Where(a => a.StreamUID == id && a.IsStatic).ToList();
            var toRemove = _containers.Where(a => a.StreamUID == id && !a.IsStatic).ToList();

            foreach (var container in toRemove)
            {
                container.NativeView.RemoveFromSuperview();
                _containers.Remove(container);
            }
            foreach (var container in toClear)
            {
                container.VideoView.IsOffline    = true;
                container.VideoView.IsAudioMuted = false;
                container.VideoView.IsVideoMuted = false;
                container.VideoView.StreamUID    = container.VideoView.StreamUID == Consts.UnknownLocalStreamId ? Consts.UnknownLocalStreamId : Consts.UnknownRemoteStreamId;
            }
            OnDisconnected(id);
        }
 public override void DidOfflineOfUid(AgoraRtcEngineKit engine, nuint uid, UserOfflineReason reason)
 {
     Debug.WriteLine($"DidOfflineOfUid {uid}");
     _controller.DidOfflineOfUid(engine, uid, reason);
 }
 public override void DidOfflineOfUid(AgoraRtcEngineKit engine, nuint uid, UserOfflineReason reason)
 {
     _controller.DidOfflineOfUid(engine, uid, reason);
 }
Beispiel #5
0
 /// <summary>
 /// Dids the offline of uid.
 /// </summary>
 /// <param name="engine">Engine.</param>
 /// <param name="uid">Uid.</param>
 /// <param name="reason">Reason.</param>
 public override void DidOfflineOfUid(AgoraRtcEngineKit engine, nuint uid, UserOfflineReason reason)
 {
     Console.WriteLine($"DidOfflineOfUid: {uid}, {reason}");
     _controller.OnUserOffline(engine, uid, reason);
 }
Beispiel #6
0
 public void DidOfflineOfUid(AgoraRtcEngineKit engine, nuint uid, UserOfflineReason reason)
 {
     _userList.Remove(GetOrCreateUser(uid));
     RemoteVideosContainer.ReloadData();
     ContainerView.Hidden = true;
 }
 public void DidOfflineOfUid(AgoraRtcEngineKit engine, nuint uid, UserOfflineReason reason)
 {
     remoteVideo.Hidden = true;
 }
 public void DidOfflineOfUid(AgoraRtcEngineKit engine, nuint uid, UserOfflineReason reason)
 {
     ContainerView.Hidden = true;
 }
 public void DidOfflineOfUid(AgoraRtcEngineKit engine, nuint uid, UserOfflineReason reason)
 {
     remoteVideo.Hidden = true;
     remoteVideoMutedIndicator.Hidden = false;
 }
 public void DidOfflineOfUid(AgoraRtcEngineKit engine, nuint uid, UserOfflineReason reason)
 {
     _users.Remove(_users.First(u => u.Uid == (uint)uid));
     RemoteUsersTableView.ReloadData();
 }