예제 #1
0
        void SetActivity()
        {
            CallPageActivity = this.Context as Activity;
            CallView         = CallPageActivity.LayoutInflater.Inflate(Resource.Layout.activity_call, this, false);

            FullScreenRenderer = CallView.FindViewById <SurfaceViewRenderer>(Resource.Id.fullscreen_video_view);
            PipScreenRenderer  = CallView.FindViewById <SurfaceViewRenderer>(Resource.Id.pip_video_view);

            CallFragment = CreateCallFragment(CallPageActivity.Intent);

            LocalVideoRenderer  = new VideoRendererProxy();
            RemoteVideoRenderer = new VideoRendererProxy();

            PipScreenRenderer.Click += PipScreenRenderer_Click;
            PipScreenRenderer.SetScalingType(RendererCommon.ScalingType.ScaleAspectFit);
            PipScreenRenderer.SetZOrderMediaOverlay(true);
            PipScreenRenderer.SetEnableHardwareScaler(true);


            FullScreenRenderer.Click += FullScreenRenderer_Click;
            FullScreenRenderer.SetScalingType(RendererCommon.ScalingType.ScaleAspectFill);
            FullScreenRenderer.SetEnableHardwareScaler(false);


            SetSwappedFeeds(true);

            var fragmentTransaction = MainActivity.Instance.SupportFragmentManager.BeginTransaction();

            fragmentTransaction.Add(Resource.Id.call_fragment_container, CallFragment);
            fragmentTransaction.Commit();

            CallController = CreateController();
            Connect(CallController, CallPageActivity.Intent);
        }
        protected override void OnElementChanged(VisualElementChangedEventArgs e)
        {
            base.OnElementChanged(e);

            if (e.OldElement != null || Element == null)
            {
                return;
            }


            var callPage = (CallPage)e.NewElement;

            RoomId     = callPage.RoomId;
            IsInitator = callPage.IsInitator;

            videoCallView          = new VideoCallView(CGRect.Empty, !isSimulator);
            videoCallView.Delegate = this;

            localVideoRenderer  = new VideoRendererProxy();
            remoteVideoRenderer = new VideoRendererProxy();

            localVideoRenderer.Renderer  = videoCallView.LocalVideoRender;
            remoteVideoRenderer.Renderer = videoCallView.RemoteVideoRender;

            if (NativeView != null)
            {
            }
        }
        public override void ViewDidLoad()
        {
            base.ViewDidLoad();

            _localRenderer  = new VideoRendererProxy();
            _remoteRenderer = new VideoRendererProxy();

            _localRenderer.Renderer  = _videoCallView.LocalVideoRender;
            _remoteRenderer.Renderer = _videoCallView.RemoteVideoRender;
        }
예제 #4
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            RequestWindowFeature(WindowFeatures.NoTitle);

            Window.AddFlags(WindowManagerFlags.Fullscreen | WindowManagerFlags.KeepScreenOn |
                            WindowManagerFlags.ShowWhenLocked | WindowManagerFlags.TurnScreenOn);

            Window.DecorView.SystemUiVisibility = GetSystemUiVisibility();

            SetContentView(Resource.Layout.activity_call);

            _fullscreenRenderer = FindViewById <SurfaceViewRenderer>(Resource.Id.fullscreen_video_view);
            _pipRenderer        = FindViewById <SurfaceViewRenderer>(Resource.Id.pip_video_view);

            _callFragment = CreateCallFragment(Intent);


            _localRenderer  = new VideoRendererProxy();
            _remoteRenderer = new VideoRendererProxy();

            _pipRenderer.Click += (sender, args) => SetSwappedFeeds(!_isSwappedFeed);
            _pipRenderer.SetScalingType(RendererCommon.ScalingType.ScaleAspectFit);
            _pipRenderer.SetZOrderMediaOverlay(true);
            _pipRenderer.SetEnableHardwareScaler(true);

            _fullscreenRenderer.Click += (sender, args) => ToggleCallControlFragmentVisibility();
            _fullscreenRenderer.SetScalingType(RendererCommon.ScalingType.ScaleAspectFill);
            _fullscreenRenderer.SetEnableHardwareScaler(false);


            SetSwappedFeeds(true);

            var ft = SupportFragmentManager.BeginTransaction();

            ft.Add(Resource.Id.call_fragment_container, _callFragment);
            ft.Commit();


            _client = CreateEngine();
            Connect(_client, Intent);
        }