音乐播放器之(音量控制的实现)

今天介绍一下音乐播放器的声音控制逻辑,安卓没接触多久,不对的地方忘大神指出,适用于初学者。

首先,我们需要一个类AudioManager此类为管理器,来控制音量,下面是需要定义的变量

AudioManager am;//管理器控制音量
    SeekBar seekBar_time,seekBar_listen;//时间进度条,声音进度条
    int maxVolume =50;//最大音量
    int curVolume =20;//当前音量
    int stepVolume =0;//每次调整的音量幅度
    TextView mAddVolume,mLessVolume;//加减音乐

第二部实例化此类控件

   seekBar_listen =(SeekBar)findViewById(R.id.sb_volume);
        mAddVolume = (TextView) findViewById(R.id.tv_add_volume);
        mLessVolume = (TextView) findViewById(R.id.tv_less_volume);

        am  = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
        maxVolume =am.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
        curVolume =maxVolume/2;
        stepVolume =maxVolume/6;
        seekBar_listen.setMax(maxVolume);
        seekBar_listen.setProgress(curVolume);

第三部控制音量大小及Seekbar的逻辑


/**
 * 声音seekbar监听调节音量
 */
        seekBar_listen.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
            @Override
            public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {

            }

            @Override
            public void onStartTrackingTouch(SeekBar seekBar) {

            }

            @Override
            public void onStopTrackingTouch(SeekBar seekBar) {

            curVolume =seekBar_listen.getProgress();

                adjustVolume();

            }
        });



    }

/**
 * 加大音乐
 */
public void addVolume(View view){
        curVolume+=stepVolume;
    if(curVolume>=maxVolume){
        curVolume = maxVolume;
    }
seekBar_listen.setProgress(curVolume);

    adjustVolume();
}

    /**
     * 减小音乐
     */
    public void lessVolume(View view){
        curVolume-=stepVolume;
        if(curVolume<=0){
            curVolume = 0;
        }
        seekBar_listen.setProgress(curVolume);

        adjustVolume();
    }



/**
 * 调整音量
 */
private void adjustVolume(){

        am.setStreamVolume(AudioManager.STREAM_MUSIC,curVolume,AudioManager.FLAG_PLAY_SOUND);
    }
以下是音量控制界面




你可能感兴趣的:(音乐播放器之(音量控制的实现))