Пример #1
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            Xamarin.Essentials.Platform.Init(this, savedInstanceState);
            SetContentView(Resource.Layout.activity_main);

            var toolbar = FindViewById <Toolbar>(Resource.Id.toolbar);

            SetSupportActionBar(toolbar);

            var connectButton = FindViewById <Button>(Resource.Id.connect_button);

            connectButton.Click += ConnectButton;
            var disconnectButton = FindViewById <Button>(Resource.Id.disconnect_button);

            disconnectButton.Click += DisconnectButton;

            var waveButton = FindViewById <Button>(Resource.Id.wave_button);

            waveButton.Text   = "👋";
            waveButton.Click += (sender, args) => _webRtcClient.SendMessage(waveButton.Text);

            _remoteView = FindViewById <SurfaceViewRenderer>(Resource.Id.remote_video_view);
            _localView  = FindViewById <SurfaceViewRenderer>(Resource.Id.local_video_view);

            // Force audio output to loudspeaker
            var audioManager = (AudioManager)GetSystemService(AudioService);

            audioManager.Mode           = Mode.InCall;
            audioManager.SpeakerphoneOn = true;

            RunOnUiThread(async() => await Init());
        }
Пример #2
0
 protected override void OnCreate(Bundle savedInstanceState)
 {
     base.OnCreate(savedInstanceState);
     Xamarin.Essentials.Platform.Init(this, savedInstanceState);
     // Set our view from the "main" layout resource
     SetContentView(Resource.Layout.activity_main);
     StartArSession();
     SetupGlSurfaceView();
     remoteVideoSurface = FindViewById <SurfaceViewRenderer>(Resource.Id.remote_video_surface);
 }
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            // Set window styles for fullscreen-window size. Needs to be done before
            // adding content.
            RequestWindowFeature(WindowFeatures.NoTitle);
            Window.AddFlags(WindowManagerFlags.Fullscreen | WindowManagerFlags.KeepScreenOn
                            | WindowManagerFlags.DismissKeyguard | WindowManagerFlags.ShowWhenLocked
                            | WindowManagerFlags.TurnScreenOn);
            //getWindow().getDecorView().setSystemUiVisibility(getSystemUiVisibility());

            SetContentView(Resource.Layout.activity_conference);

            SurfaceViewRenderer        publishViewRenderer = FindViewById <SurfaceViewRenderer>(Resource.Id.publish_view_renderer);
            List <SurfaceViewRenderer> playViewRenderers   = new List <SurfaceViewRenderer>();

            playViewRenderers.Add(FindViewById <SurfaceViewRenderer>(Resource.Id.play_view_renderer1));
            playViewRenderers.Add(FindViewById <SurfaceViewRenderer>(Resource.Id.play_view_renderer2));
            playViewRenderers.Add(FindViewById <SurfaceViewRenderer>(Resource.Id.play_view_renderer3));
            playViewRenderers.Add(FindViewById <SurfaceViewRenderer>(Resource.Id.play_view_renderer4));

            audioButton = FindViewById <Button>(Resource.Id.control_audio_button);
            videoButton = FindViewById <Button>(Resource.Id.control_video_button);

            // Check for mandatory permissions.
            foreach (String permission in CallActivity.MandatoryPermissions)
            {
                if (this.CheckCallingOrSelfPermission(permission) != Andr.Content.PM.Permission.Granted)
                {
                    Toast.MakeText(this, "Permission " + permission + " is not granted", ToastLength.Short).Show();
                    return;
                }
            }

            this.Intent.PutExtra(CallActivity.ExtraCapturetotextureEnabled, true);
            //  this.getIntent().putExtra(CallActivity.EXTRA_VIDEO_CALL, false);

            String streamId = null;//"stream1";
            String roomId   = "room1";

            conferenceManager = new ConferenceManager(
                this,
                this,
                Intent,
                "",    //MainActivity.SERVER_URL,
                roomId,
                publishViewRenderer,
                playViewRenderers,
                streamId,
                this
                );

            conferenceManager.SetOpenFrontCamera(true);
        }
Пример #4
0
        private void Disconnect()
        {
            _client?.Disconnect();
            _client = null;
            _pipRenderer?.Release();
            _pipRenderer = null;
            _fullscreenRenderer?.Release();
            _fullscreenRenderer = null;

            Finish();
        }
Пример #5
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            Xamarin.Essentials.Platform.Init(this, savedInstanceState);
            SetContentView(Resource.Layout.activity_main);

            Android.Support.V7.Widget.Toolbar toolbar =
                FindViewById <Android.Support.V7.Widget.Toolbar>(Resource.Id.toolbar);
            SetSupportActionBar(toolbar);

            FloatingActionButton fab = FindViewById <FloatingActionButton>(Resource.Id.fab);

            fab.Click += FabOnClick;

            _surfaceViewRenderer = FindViewById <SurfaceViewRenderer>(Resource.Id.fullscreen_video_view);

            CreatePeerConnectionClient();
        }
Пример #6
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);
        }
Пример #7
0
        protected void InitWebRTC()
        {
            if (webRTCClient != null)
            {
                webRTCClient.StopStream();
                webRTCClient.Disconnect();
                webRTCClient.Dispose();
            }
            webRTCClient = new WebRTCClient(this, this);
            Intent.PutExtra(CallActivity.ExtraCapturetotextureEnabled, true);
            Intent.PutExtra(CallActivity.ExtraVideoFps, 30);
            Intent.PutExtra(CallActivity.ExtraVideoBitrate, 2500);
            Intent.PutExtra(CallActivity.ExtraCapturetotextureEnabled, true);
            SurfaceViewRenderer cameraViewRenderer = FindViewById <SurfaceViewRenderer>(Resource.Id.camera_view_renderer);
            SurfaceViewRenderer pipViewRenderer    = FindViewById <SurfaceViewRenderer>(Resource.Id.pip_view_renderer);

            streamId = InitialData.DefaultStream;
            String tokenId = InitialData.Token;//"tokenId";

            webRTCClient.SetVideoRenderers(pipViewRenderer, cameraViewRenderer);
            webRTCClient.SetOpenFrontCamera(webRTCMode.Equals(WebRTCClientConsts.ModePublish));
            // Intent.PutExtra(CallActivity.EXTRA_VIDEO_FPS, 24);
            webRTCClient.Init(InitialData.SERVER_URL, streamId, webRTCMode, tokenId, Intent);
        }