AudioManager — разница между двумя методами

#android #audio #android-audiomanager

#Android #Аудио #android-audiomanager

Вопрос:

В чем разница между вызовом AudioManager.setRingerMode и вызовом AudioManager.setStreamMute(AudioManager.STREAM_VOICE_CALL, ...)

Что в документации подразумевается под «режимом звонка»? Я почти уверен, что это режим телефонного звонка. Тогда чем это отличается от вызова setStreamMute с STREAM_VOICE_CALL помощью?

Если это не режим телефонного звонка, то что это такое?

Заранее благодарю.

Ответ №1:

Я никогда не использовал аудиопоток на платформе Android, однако, основываясь на чтении документации, я думаю, что setRingerMode повлияет на то, как телефон реагирует на входящие вызовы. Например, AudioManager.setRingerMode(RINGER_MODE_SILENT) отключит вибрации и звук при поступлении входящего вызова.

Однако AudioManager.setStreamMute, похоже, контролирует не только аудиопоток для телефонных звонков.

Из документации по адресу http://developer.android.com/reference/android/media/AudioManager.html#STREAM_VOICE_CALL

Я думаю, что AudioManager.setRingerMode(RINGER_MODE_SILENT) будет действовать так же, как AudioManager.setStreamMute(STREAM_RING, true).

Я думаю, что лучший способ увидеть, в чем разница (и проверить, верно ли то, что я говорю), — это написать небольшую программу, которая тестирует эти две функции.

Комментарии:

1. Я читал эту документацию много-много раз. Но хорошо, я постараюсь проверить это и увидеть разницу

2. Да, оба делают то же самое. Но при использовании setRingerMode он также помещает знак silent / vibrate вверху, а при использовании setStreamMute — нет. Спасибо за идею протестировать его 🙂