2015-11-09 3 views
-1

Я создаю приложение с отключенным и включенным функциями. Проблема в том, что когда я ударил немой, звонок не работает успешно, но звук от MediaPlayer все еще играет. BTW: Звук воспроизводится в сервисе на фоне b, и я отменяю устройство от другого действия, чтобы остановить воспроизведение звука. Я пытался несколько раз менять потоки, но он все равно не отключается. Я также попробовал добавить много разрешений в свой манифест, чтобы заставить его работать, но не повезло ...Простой вопрос об отключении звука?

Вот код, не волнуйтесь о моем глобальном var. х, это просто счетчик, который контролирует ли вызывается отключения/включения звука:

public void mute(View view) { 
    mutebutton = (ImageButton) findViewById(R.id.mutebutton); 

    if ((variableForMute.x % 2) != 0) { //If it's odd UNMUTE 
     Toast.makeText(Main_Menu.this, "UNMUTED", Toast.LENGTH_SHORT).show(); 
     mAudioManager.setStreamVolume(AudioManager.STREAM_RING, userVolumeOnStart.userVolume, 0); 
     variableForMute.x++; 
     Log.v(TAG, variableForMute.x + "UNMUTED"); 


    } else { //If its even MUTE 
     userVolumeOnStart.userVolume = mAudioManager.getStreamVolume(AudioManager.STREAM_RING); 
     mAudioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT); 
     // mAudioManager.setRingerMode(0); 
     Toast.makeText(Main_Menu.this, "MUTED", Toast.LENGTH_SHORT).show(); 
     variableForMute.x++; 
     Log.v(TAG, variableForMute.x + "MUTED"); 
    } 
} 

Вот скриншот манифеста:

enter image description here

спасибо за помощь мне с этой интересной проблемой , Это интересно, потому что проблема продолжает сохраняться после попытки так много разных способов сделать то же самое. Например, используя официальный метод отключения звука (audioManager.RINGER_MODE_SILENT), вручную установив том на ноль (AudioManager.STREAM_RING, 0, 0), добавив разрешения в манифест и т. Д. Вы заметите много комментариев в моем коде, и это от некоторых моих других (многие!) попыток, которые я предпринял в решении этого.

Примечание: Когда я уменьшить громкость с помощью кнопок отключения звука и отключить его таким образом, аудио делает успешно немой, но мой телефон не имеет маленький значок отключения звука в верхней панели уведомлений. В противном случае, используя кнопку отключения звука, я получаю значок отключения звука и, который он не отключает.

Спасибо, дайте мне знать, если вам нужно что-нибудь еще, я надеюсь, что предоставил достаточно информации!

+0

Почему вы заглушаете 'STREAM_RING', когда ваша музыка воспроизводится на' STREAM_MUSIC'? – ianhanniballake

ответ

0

MediaPlayer mp = MediaPlayer.create (контекст, R.raw.sound_file_1); mp.start();

для Mute

mp.setVolume (0,0);

& Unmute или полный объем

mp.setVolume (1,1);

+0

Я получаю не могу разрешить метод setVolume (int, int). Как я могу это исправить? Благодаря! –

+0

public void setVolume (float leftVolume, float rightVolume) Добавлено в API level 1 Устанавливает громкость на этом проигрывателе. Этот API рекомендуется для балансировки вывода аудиопотоков в приложении. Если вы не пишете приложение для управления пользовательскими настройками, этот API следует использовать в предпочтении setStreamVolume (int, int, int), который устанавливает объем всех потоков определенного типа. Обратите внимание, что пройденные значения объема представляют собой необработанные скаляры в диапазоне от 0.0 до 1.0. Элементы управления пользовательского интерфейса должны масштабироваться логарифмически. –

Смежные вопросы