Example #1
0
        public void Stop()
        {
            ThreadUtils.CheckIsOnMainThread();
            if (_amState != AudioManagerState.Running)
            {
                return;
            }
            _amState = AudioManagerState.Uninitialized;

            UnregisterReceiver(_wiredHeadsetReceiver);

            //_bluetoothManager.Stop();

            //restored previously stored audio states
            SetSpeakerphoneOn(_savedIsSpeackerPhoneOn);
            SetMicrophoneMute(_savedIsMicrophoneMute);
            _audioManager.Mode = _savedAudioMode;

            _audioManager.AbandonAudioFocus(_audioFocusChangeListener);
            _audioFocusChangeListener = null;

            if (_proximitySensor != null)
            {
                _proximitySensor.Stop();
                _proximitySensor = null;
            }

            _audioManagerEvents = null;
        }
Example #2
0
        public RtcAudioManager(Context context)
        {
            _context      = context;
            _audioManager = (AudioManager)context.GetSystemService(Context.AudioService);
            //_wiredHeadsetReceiver = new WiredHeadsetReceiver();
            _amState = AudioManagerState.Uninitialized;

            ISharedPreferences preferences = PreferenceManager.GetDefaultSharedPreferences(context);

            _useSpeakerPhone = preferences.GetString(context.GetString(Resource.String.pref_speakerphone_key),
                                                     context.GetString(Resource.String.pref_speakerphone_default));
            if (_useSpeakerPhone.Equals(SpeakerPhoneFalse))
            {
                _defaultAudioDevice = AudioDevice.Earpiece;
            }
            else
            {
                _defaultAudioDevice = AudioDevice.SpeakerPhone;
            }
            _proximitySensor      = RTCProximitySensor.Create(_context, new Runnable(OnProximitySensorChangedState));
            _wiredHeadsetReceiver = new WiredHeadsetReceiver(new Runnable(() => { UpdateAudioDeviceState(); }));
        }