예제 #1
0
        public void RequestFocus()
        {
            listener = new FocusListener();

            manager = (AudioManager)Android.App.Application.Context.GetSystemService(Context.AudioService);
            manager.RequestAudioFocus(listener, Stream.Music, Android.Media.AudioFocus.Gain);
        }
예제 #2
0
        public void Start(IAudioManagerEvents audioManagerEvents)
        {
            ThreadUtils.CheckIsOnMainThread();
            if (_amState == AudioManagerState.Running)
            {
                return;
            }

            _audioManagerEvents = audioManagerEvents;
            _amState            = AudioManagerState.Running;

            // Store current audio state so we can restore it when stop() is called
            _savedAudioMode         = _audioManager.Mode;
            _savedIsSpeackerPhoneOn = _audioManager.SpeakerphoneOn;
            _savedIsMicrophoneMute  = _audioManager.MicrophoneMute;
            _hasWiredHeadset        = HasWiredHeadset();

            _audioFocusChangeListener = new OnAudioFocusChangeListener();

            //var result = _audioManager.RequestAudioFocus(_audioFocusChangeListener,Stream.VoiceCall,AudioFocus.GainTransient);

            _audioManager.Mode = Mode.InCommunication;

            _proximitySensor.Start();
            SetMicrophoneMute(false);
            _userSelectedAudioDevice = AudioDevice.None;
            _selectedAudioDevice     = AudioDevice.None;
            _audioDevices.Clear();

            UpdateAudioDeviceState();

            RegisterReceiver(_wiredHeadsetReceiver, new IntentFilter(Intent.ActionHeadsetPlug));
        }
예제 #3
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;
        }
예제 #4
0
 public RadioStationPlayer(Context context, AudioManager.IOnAudioFocusChangeListener onAudioFocusChangeListener)
 {
     _onAudioFocusChangeListener = onAudioFocusChangeListener;
     _listener     = new EventListener(this);
     _context      = context;
     _audioManager = (AudioManager)context.GetSystemService(Context.AudioService);
     _handler      = new Handler();
 }
		public Boolean RequestAudioResources (INotificationReceiver parent)
		{
			listener = new FocusChangeListener (parent);

			var ret = audioManager.RequestAudioFocus (listener, Stream.Music, AudioFocus.Gain);
			if (ret == AudioFocusRequest.Granted) {
				return (true);
			} else if (ret == AudioFocusRequest.Failed) {
				return (false);
			}
			return (false);
		}
        public Boolean RequestAudioResources(INotificationReceiver parent)
        {
            listener = new FocusChangeListener(parent);

            var ret = audioManager.RequestAudioFocus(listener, Stream.Music, AudioFocus.Gain);

            if (ret == AudioFocusRequest.Granted)
            {
                return(true);
            }
            else if (ret == AudioFocusRequest.Failed)
            {
                return(false);
            }
            return(false);
        }
예제 #7
0
        public bool RequestAudioResources(string path)
        {
            filePath     = path;
            listener     = new FocusChangeListener(this);
            audioManager = Audio.AudioManager;

            var ret = audioManager.RequestAudioFocus(listener, Stream.Music, AudioFocus.Gain);

            if (ret == AudioFocusRequest.Granted)
            {
                return(true);
            }

            if (ret == AudioFocusRequest.Failed)
            {
                return(false);
            }

            return(false);
        }