public override void LoadView()
        {
            base.LoadView();
            Title = "AppRTC Mobile";
            NavigationItem.Title = "WebRTC Test";
            _shareButton         = new UIBarButtonItem("Share", UIBarButtonItemStyle.Plain, OnShareButtonPressed);
            NavigationItem.RightBarButtonItem = _shareButton;
            _mainView                 = new ARDMainView(CGRect.Empty);
            _mainView.Delegate        = this;
            _mainView.BackgroundColor = UIColor.White;

            View = _mainView;

            AddSettingsBarButton();

            var webRTCConfig = new RTCAudioSessionConfiguration();

            webRTCConfig.CategoryOptions |= AVAudioSessionCategoryOptions.DefaultToSpeaker;
            RTCAudioSessionConfiguration.SetWebRTCConfiguration(webRTCConfig);

            var session = RTCAudioSession.SharedInstance;

            session.AddDelegate(this);

            ConfigureAudioSession();
            SetupAudioPlayer();
            SetupBroadcastUI();
        }
        private void ConfigureAudioSession()
        {
            var configuration = new RTCAudioSessionConfiguration();

            configuration.Category        = AVAudioSession.CategoryAmbient;
            configuration.CategoryOptions = AVAudioSessionCategoryOptions.DuckOthers;
            configuration.Mode            = AVAudioSession.ModeDefault;

            var session = RTCAudioSession.SharedInstance;

            session.LockForConfiguration();

            bool    hasSucceeded;
            NSError error;

            if (session.IsActive)
            {
                hasSucceeded = session.SetConfiguration(configuration, out error);
            }
            else
            {
                hasSucceeded = session.SetConfiguration(configuration, true, out error);
            }

            if (!hasSucceeded)
            {
                Console.WriteLine("Error setting configuration:{0}", error.LocalizedDescription);
            }

            session.UnlockForConfiguration();
        }
        public override void ViewDidLoad()
        {
            base.ViewDidLoad();

            var webRTCConfig = new RTCAudioSessionConfiguration();

            webRTCConfig.CategoryOptions |= AVAudioSessionCategoryOptions.DefaultToSpeaker;
            RTCAudioSessionConfiguration.SetWebRTCConfiguration(webRTCConfig);

            var session = RTCAudioSession.SharedInstance;

            session.AddDelegate(this);

            ConfigureAudioSession();
        }
        public override void LoadView()
        {
            base.LoadView();
            Title                     = "AppRTC Mobile";
            _mainView                 = new ARDMainView(CGRect.Empty);
            _mainView.Delegate        = this;
            _mainView.BackgroundColor = UIColor.White;

            View = _mainView;

            AddSettingsBarButton();

            var webRTCConfig = new RTCAudioSessionConfiguration();

            webRTCConfig.CategoryOptions |= AVAudioSessionCategoryOptions.DefaultToSpeaker;
            RTCAudioSessionConfiguration.SetWebRTCConfiguration(webRTCConfig);

            var session = RTCAudioSession.SharedInstance;

            session.AddDelegate(this);

            ConfigureAudioSession();
            SetupAudioPlayer();
        }