Intereting Posts
SwipeRefreshLayout – вытащить снизу Приложение сбой после захвата изображения с использованием намерений Правильный шаблон ViewHolder реализован в пользовательском CursorAdapter? Создать вертикальный градиент в android Как измерить высоту TextView на основе ширины и размера шрифта устройства? Остановка приложения Android с консоли Когда isGooglePlayServicesAvailable возвращает SERVICE_VERSION_UPDATE_REQUIRED? Как установить высоту строк ListView Запрашиваемый товар недоступен для покупки Как настроить макет Android для поддержки всех размеров экрана? Android, фрагмент Google Maps и просмотрщик – Ошибка раздувания фрагмента класса Как перемещаться по одной странице на другую страницу в телефоне Android? Подключение через Ethernet через программный (Android) (укорененное устройство) Как сделать панель контекстного actionmode накладывать мой макет вместо того, чтобы «толкать» его вниз Как избежать обратного проектирования файла APK?

Контроль громкости в приложении android

Я хотел бы знать, как управлять объемом моего приложения с клавиш тома (вопреки моему убеждению, я прочитал, что они контролируют только громкость звонка). Должен ли я перезаписать onKey Down / Up?

Или есть другой способ сделать это? Я спрашиваю, потому что, если я переписал верхнюю указанную функцию для действия, то функции получат событие только в том случае, если вид, связанный с этим действием, имеет фокус, и я ищу что-то «Глобал» (чтобы не работать Вопрос о том, какая деятельность выполняется сейчас)

Solutions Collecting From Web of "Контроль громкости в приложении android"

С давних пор был задан еще один вопрос, который задал одно и то же. По сути, ответ: не переопределяйте кнопки onKeyDown и onKeyUp. Гораздо лучше просто использовать эту одну строку setVolumeControlStream(AudioManager.STREAM_MUSIC); В вашем методе onCreate (). Это говорит ОС, что кнопки громкости должны влиять на громкость «носителя», когда ваше приложение видимо, и это том, который он использует для вашего приложения.

Что касается контроля объема мультимедиа независимо от того, какое приложение видно, я не уверен, что это можно сделать – или если бы это было возможно, то это было бы хорошо.

В своей деятельности вы можете использовать одно из следующих действий:

 this.setVolumeControlStream(AudioManager.STREAM_MUSIC); this.setVolumeControlStream(AudioManager.STREAM_RING); this.setVolumeControlStream(AudioManager.STREAM_ALARM); this.setVolumeControlStream(AudioManager.STREAM_NOTIFICATION); this.setVolumeControlStream(AudioManager.STREAM_SYSTEM); this.setVolumeControlStream(AudioManager.STREAM_VOICECALL); 

Надеемся, что этот рабочий код Android поможет вам разработать собственное приложение для управления томами:

 public class audioSetting extends Activity { Button b; TextView t; SeekBar s; EditText e; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); b = (Button)findViewById(R.id.button1); s = (SeekBar)findViewById(R.id.seekBar1); e = (EditText)findViewById(R.id.editText1); b.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View arg0) { // TODO Auto-generated method stub finish(); } }); final AudioManager audioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE); int a = audioManager.getStreamMaxVolume(AudioManager.STREAM_RING); int c = audioManager.getStreamVolume(AudioManager.STREAM_RING); b.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View arg0) { // TODO Auto-generated method stub audioManager.setStreamVolume(AudioManager.STREAM_RING, (int)(Integer.parseInt(e.getText().toString().trim())), 0); s.setProgress((int)(Integer.parseInt(e.getText().toString().trim()))); } }); s.setMax(a); s.setProgress(c); e.setText(""+c); s.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { @Override public void onStopTrackingTouch(SeekBar arg0) { } @Override public void onStartTrackingTouch(SeekBar arg0) { } @Override public void onProgressChanged(SeekBar arg0, int arg1, boolean arg2) { audioManager.setStreamVolume(AudioManager.STREAM_RING, arg1, 0); e.setText(""+s.getProgress()); } }); } } 

Это старый вопрос, но есть превосходная библиотека для управления громкостью в android (даже лучше, чем кнопки регулировки громкости, которые ограничены 5 приращениями уровня громкости).

http://code.google.com/p/media-volume-control

Взгляните на этот пакет , он обеспечивает непрерывный уровень громкости, а также другие приятные функции (например, когда звук прерывается, монитор громкости должен быть уведомлен, если / когда уровень громкости изменяется любыми средствами – ручная передача при отображении тома SeekBar , и т.д.).