Esempio n. 1
0
        public void AddUserVideotextureView(int uid, SurfaceView surfaceView, bool isLocal)
        {
            try
            {
                if (surfaceView == null)
                {
                    return;
                }

                int id = -1;
                if (isLocal)
                {
                    if (MUidList.Contains(0))
                    {
                        MUidList.Remove(0);
                        MUserViewList.Remove(0);
                    }

                    if (MUidList.Count == MaxUser)
                    {
                        MUidList.Remove(0);
                        MUserViewList.Remove(0);
                    }
                    id = 0;
                }
                else
                {
                    if (MUidList.Contains(uid))
                    {
                        MUidList.Remove(uid);
                        MUserViewList.Remove(uid);
                    }

                    if (MUidList.Count < MaxUser)
                    {
                        id = uid;
                    }
                }

                if (id == 0)
                {
                    MUidList.Add(uid);
                }
                else
                {
                    MUidList.Add(uid);
                }

                if (id != -1)
                {
                    MUserViewList.Add(uid, CreateVideoView(surfaceView));

                    if (MStatsManager != null)
                    {
                        MStatsManager.AddUserStats(uid, isLocal);
                        if (MStatsManager.IsEnabled())
                        {
                            MHandler.RemoveCallbacks(this);
                            MHandler.PostDelayed(this, StatsRefreshInterval);
                        }
                    }

                    RequestGridLayout();
                }
            }
            catch (Exception e)
            {
                Methods.DisplayReportResultTrack(e);
            }
        }