向上/向下滑动以控制音频

时间:2017-05-21 17:40:22

标签: java android

我试图控制VLC媒体播放器在Android上的音量。这是一个如何运作的例子。

enter image description here

但是我不确定数学,这是我尝试过的

public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
    int volume_level= audioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
    int max_volume = audioManager.getStreamMaxVolume(audioManager.STREAM_MUSIC);
    int changeVolumeBy = volume_level;
    int movement = (int) (e1.getY() - e2.getY());
    if ((Math.abs(e1.getY() - e2.getY())) > 100) {

        if (e1.getY() < e2.getY()) {
                // down
            changeVolumeBy = Math.abs((Resources.getSystem().getDisplayMetrics().widthPixels / movement));
        } else if ((e1.getY() > e2.getY())) {
            // up
            changeVolumeBy = (Resources.getSystem().getDisplayMetrics().widthPixels  / movement);
        }

        if (changeVolumeBy > max_volume) {
            changeVolumeBy = max_volume;
        } else if (changeVolumeBy < 0) {
            changeVolumeBy = 0;
        }
        audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, changeVolumeBy, 0);
    }
    return true;
}

问题是音量没有线性变化,它达到峰值并且不是非常可靠。

我的问题:我是否使用了适当的方法,或者我的方式是否存在缺陷?

0 个答案:

没有答案