コード例 #1
0
        public void DidChangeRoute(VideoCallView view)
        {
            var @override = AVAudioSessionPortOverride.None;

            if (portOverride == AVAudioSessionPortOverride.None)
            {
                @override = AVAudioSessionPortOverride.Speaker;
            }

            RTCDispatcher.DispatchAsyncOnType(RTCDispatcherQueueType.AudioSession, () =>
            {
                var session = RTCAudioSession.SharedInstance();
                session.LockForConfiguration();
                session.OverrideOutputAudioPort(@override, out NSError error);

                if (error == null)
                {
                    portOverride = @override;
                }
                else
                {
                    Console.WriteLine("Error overriding output port:{0}", error.LocalizedDescription);
                }
                session.UnlockForConfiguration();
            });
        }
コード例 #2
0
 private void AudioSessionDidStopPlayOrRecordInternal(RTCAudioSession session)
 {
     // WebRTC is done with the audio session. Restart playback.
     RTCDispatcher.DispatchAsyncOnType(RTCDispatcherQueueType.Main, () =>
     {
         AudioSessionDidStopPlayOrRecord(session);
     });
 }
コード例 #3
0
 protected override void AudioSessionDidStartPlayOrRecord(RTCAudioSession session)
 {
     if (_mainView.IsAudioLoopPlaying)
     {
         Console.WriteLine("Stopping audio loop due to WebRTC start.");
         _audioPlayer.Stop();
     }
     base.AudioSessionDidStartPlayOrRecord(session);
 }
コード例 #4
0
 public void AudioSessionDidStopPlayOrRecord(RTCAudioSession session)
 {
     // WebRTC is done with the audio session. Restart playback.
     RTCDispatcher.DispatchAsyncOnType(RTCDispatcherQueueType.Main, () =>
     {
         Console.WriteLine("audioSessionDidStopPlayOrRecord");
         RestartAudioPlayerIfNeeded();
     });
 }
コード例 #5
0
        private void StartVideoCallInternal(IVideoRenderer localRenderer, IVideoRenderer remoteRenderer)
        {
            var session = RTCAudioSession.SharedInstance();

            session.UseManualAudio = true;
            session.IsAudioEnabled = false;

            StartVideoCall(localRenderer, remoteRenderer);
        }
コード例 #6
0
 private void AudioSessionDidStartPlayOrRecordInternal(RTCAudioSession session)
 {
     // Stop playback on main queue and then configure WebRTC.
     RTCDispatcher.DispatchAsyncOnType(RTCDispatcherQueueType.Main, () =>
     {
         Console.WriteLine("Setting isAudioEnabled to YES.");
         session.IsAudioEnabled = true;
     });
 }
コード例 #7
0
        public void DidFinish(CallPageRenderer _viewController)
        {
            if (!_viewController.IsBeingDismissed)
            {
                Console.WriteLine("Dismissing VC");
                _viewController.DismissViewController(true, OnDismissVideoController);
            }
            var session = RTCAudioSession.SharedInstance();

            session.IsAudioEnabled = false;
        }
コード例 #8
0
        public void AudioSessionDidStartPlayOrRecord(RTCAudioSession session)
        {
            // Stop playback on main queue and then configure WebRTC.
            RTCDispatcher.DispatchAsyncOnType(RTCDispatcherQueueType.Main, () =>
            {
                if (_mainView.IsAudioLoopPlaying)
                {
                    Console.WriteLine("Stopping audio loop due to WebRTC start.");
                    _audioPlayer.Stop();
                }

                Console.WriteLine("Setting isAudioEnabled to YES.");
                session.IsAudioEnabled = true;
            });
        }
コード例 #9
0
 protected override void AudioSessionDidStopPlayOrRecord(RTCAudioSession session)
 {
     base.AudioSessionDidStopPlayOrRecord(session);
     RestartAudioPlayerIfNeeded();
 }
コード例 #10
0
 public void AudioSession(RTCAudioSession audioSession, long totalNumberOfGlitches)
 {
     Console.WriteLine("Audio session detected glitch, total:{0}", totalNumberOfGlitches);
 }
コード例 #11
0
 protected virtual void AudioSessionDidStopPlayOrRecord(RTCAudioSession session)
 {
     Console.WriteLine("audioSessionDidStopPlayOrRecord");
     ConfigureAudioSession();
 }
コード例 #12
0
 protected virtual void AudioSessionDidStartPlayOrRecord(RTCAudioSession session)
 {
     Console.WriteLine("Setting isAudioEnabled to YES.");
     session.IsAudioEnabled = true;
 }