Есть ли слушатель для прослушивания изменений громкости в андроиде? - PullRequest
11 голосов
/ 05 июля 2010

Можно ли зарегистрировать слушателя для прослушивания изменений уровня громкости музыкального потока в Android?

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

Ответы [ 4 ]

20 голосов
/ 25 января 2012

Это не идеальный ответ, но взлом:

android.media.VOLUME_CHANGED_ACTION

Я обнаружил выше действие в родных логах при изменении громкости с помощью жесткой клавиши громкости.зарегистрируйте BroadcastReceiver с действием "android.media.VOLUME_CHANGED_ACTION", если у вас нет другого решения.

Другой способ сделать это; Взятие на себя клавиши громкости на Android .

5 голосов
/ 06 марта 2011

Один из вариантов - использовать registerMediaButtonEventReceiver и заставить ваше приложение обрабатывать аппаратные ключи. Вы можете настроить панель поиска громкости в своем приложении и использовать AudioManager для регулировки громкости.

Еще одна возможность - создать службу в вашем приложении, которая будет работать в фоновом режиме, периодически проверять громкость и соответствующим образом настраивать панель поиска.

0 голосов
/ 11 марта 2015

Android рекомендует разрешить системе делать все это за вас, вызывая setVolumeControlStream ().Это вызовет панель поиска громкости для аудиопотока, который используется вашим приложением, когда пользователь пытается отрегулировать громкость с помощью аппаратных кнопок.

"Возможно, вы захотите прослушать нажатие клавиш громкости и изменитьгромкость вашего аудиопотока таким образом. Не поддавайтесь искушению. Android предоставляет удобный метод setVolumeControlStream () для направления нажатий клавиш громкости на указанный вами аудиопоток.

Определив аудиопоток, который будет использовать ваше приложение,Вы должны установить его как цель потока тома. Вы должны сделать этот вызов в начале жизненного цикла вашего приложения - потому что вам нужно вызывать его только один раз в течение жизненного цикла действия, вы обычно должны вызывать его в методе onCreate () (Activity илиФрагмент, управляющий медиафайлами.) Это гарантирует, что когда приложение будет видимым, регуляторы громкости будут работать так, как того ожидает пользователь.волюКлавиши me на устройстве влияют на указанный вами аудиопоток (в данном случае «музыка») всякий раз, когда видна целевая деятельность или фрагмент. "

От: http://developer.android.com/training/managing-audio/volume-playback.html

0 голосов
/ 05 июля 2010

Вы можете отобразить громкость, получив доступ к текущей громкости из AudioManger, если ваше приложение в данный момент находится в фокусе. В противном случае, нет конкретного способа (официального способа использования API) сделать это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...