Может ли кто-нибудь дать мне образец кода для изменения громкости через слайдер? Я искал, и многие учебники требовали меня создать совершенно новый класс. Есть ли более простой способ?
Спасибо!
Может ли кто-нибудь дать мне образец кода для изменения громкости через слайдер? Я искал, и многие учебники требовали меня создать совершенно новый класс. Есть ли более простой способ?
Спасибо!
Добавьте это в свой OnCreate, вы должны поместить свою поисковую панель в XML файл макета:
audioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
int maxVolume = audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
int curVolume = audioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
SeekBar volControl = (SeekBar)findViewById(R.id.volbar);
volControl.setMax(maxVolume);
volControl.setProgress(curVolume);
volControl.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_MUSIC, arg1, 0);
}
});
Трэвис в Новом Бостоне имеет отличное видео-учебное пособие по этому поводу: http://www.youtube.com/watch?v=8sr2Y6Aff6Y
Исходный код учебников можно найти здесь: http://www.mybringback.com/bringers/android/thenewboston-android-series/828/thenewboston-sample-projects/
Шесть лет спустя эта слегка измененная версия работает для меня в Android Studio 3.1. IDE заявила, что мне нужно объявить окончание AudioManager:
/* volume slider*/
final AudioManager audioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
int maxVolume = audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
int curVolume = audioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
SeekBar volControl = (SeekBar)findViewById(R.id.volControl);
volControl.setMax(maxVolume);
volControl.setProgress(curVolume);
volControl.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_MUSIC, arg1, 0);
}
});
//end Volume slider