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; }
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(); })); }