2016-05-16 3 views
1

У меня есть вид на правой стороне экрана:MXPlayer как регулятор громкости

<View 
    android:layout_width="match_parent" 
    android:layout_height="fill_parent" 
    android:layout_weight="1" 
    android:id="@+id/right_scroll"> 
</View> 

Я зацепил слушатель событий прокрутки к нему с помощью:

@Override 
    public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) { 
     AudioManager audioManager = (AudioManager) getApplicationContext().getSystemService(Context.AUDIO_SERVICE); 
     Log.d("Gesture ", " onScroll"); 
     if (e1.getY() < e2.getY()){ 
      audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, AudioManager.ADJUST_LOWER, AudioManager.FLAG_SHOW_UI); 
     } 
     if(e1.getY() > e2.getY()) { 
      audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, AudioManager.ADJUST_RAISE, AudioManager.FLAG_SHOW_UI); 
     } 
     return false; 
    } 

Но это изменение объема слишком быстро. Есть ли способ замедлить это изменение громкости, как MXPlayer?

ответ

1

Я нашел способ сделать это. Не работает отлично, но выполняет свою работу!

@Override 
    public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) { 
     if (e1.getY() < e2.getY()){ 
      volumeUp = 0; 
      volumeDown += 1; 
      if(volumeDown > 7) { 
       Log.i("Increased", "Vol decrease"); 
       audioManager.adjustStreamVolume(AudioManager.STREAM_MUSIC, AudioManager.ADJUST_LOWER, AudioManager.FLAG_SHOW_UI); 
       volumeDown = 0; 
      } 
     } 
     if(e1.getY() > e2.getY()) { 
      volumeDown = 0; 
      volumeUp += 1; 
      if(volumeUp > 7){ 
       Log.i("Increased", "Vol increase"); 
       audioManager.adjustStreamVolume(AudioManager.STREAM_MUSIC, AudioManager.ADJUST_RAISE, AudioManager.FLAG_SHOW_UI); 
       volumeUp = 0; 
      } 

     } 
     return false; 
    } 
Смежные вопросы