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(); }); }
private void AudioSessionDidStopPlayOrRecordInternal(RTCAudioSession session) { // WebRTC is done with the audio session. Restart playback. RTCDispatcher.DispatchAsyncOnType(RTCDispatcherQueueType.Main, () => { AudioSessionDidStopPlayOrRecord(session); }); }
protected override void AudioSessionDidStartPlayOrRecord(RTCAudioSession session) { if (_mainView.IsAudioLoopPlaying) { Console.WriteLine("Stopping audio loop due to WebRTC start."); _audioPlayer.Stop(); } base.AudioSessionDidStartPlayOrRecord(session); }
public void AudioSessionDidStopPlayOrRecord(RTCAudioSession session) { // WebRTC is done with the audio session. Restart playback. RTCDispatcher.DispatchAsyncOnType(RTCDispatcherQueueType.Main, () => { Console.WriteLine("audioSessionDidStopPlayOrRecord"); RestartAudioPlayerIfNeeded(); }); }
private void StartVideoCallInternal(IVideoRenderer localRenderer, IVideoRenderer remoteRenderer) { var session = RTCAudioSession.SharedInstance(); session.UseManualAudio = true; session.IsAudioEnabled = false; StartVideoCall(localRenderer, remoteRenderer); }
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; }); }
public void DidFinish(CallPageRenderer _viewController) { if (!_viewController.IsBeingDismissed) { Console.WriteLine("Dismissing VC"); _viewController.DismissViewController(true, OnDismissVideoController); } var session = RTCAudioSession.SharedInstance(); session.IsAudioEnabled = false; }
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; }); }
protected override void AudioSessionDidStopPlayOrRecord(RTCAudioSession session) { base.AudioSessionDidStopPlayOrRecord(session); RestartAudioPlayerIfNeeded(); }
public void AudioSession(RTCAudioSession audioSession, long totalNumberOfGlitches) { Console.WriteLine("Audio session detected glitch, total:{0}", totalNumberOfGlitches); }
protected virtual void AudioSessionDidStopPlayOrRecord(RTCAudioSession session) { Console.WriteLine("audioSessionDidStopPlayOrRecord"); ConfigureAudioSession(); }
protected virtual void AudioSessionDidStartPlayOrRecord(RTCAudioSession session) { Console.WriteLine("Setting isAudioEnabled to YES."); session.IsAudioEnabled = true; }