播放音乐,SeekBar改变音大小

//拖动SeekBar改变音量大小

public class MainActivity extends Activity implements OnClickListener {

    private Button start;
    private SeekBar seekbar;
    private ArrayList<String> list;
    private MediaPlayer media;
    private AudioManager audio;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        start = (Button) findViewById(R.id.start);
        seekbar = (SeekBar) findViewById(R.id.seekbar);
        list = new ArrayList<String>();
        list.add("xxxxxxxx.mp3");
        media = new MediaPlayer();
        start.setOnClickListener(this);
        // 得到控制音量的对象
        audio = (AudioManager) getSystemService(AUDIO_SERVICE);
        // 得到最大音量
        int max = audio.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
        // 得到当前音量
        int now = audio.getStreamVolume(AudioManager.STREAM_MUSIC);
        // 设置进度条的最大值
        seekbar.setMax(max);
        // 设置进度条的值为音量的当前值
        seekbar.setProgress(now);
        // 进度条的滑动时间,滑动进度条可以设置音量
        seekbar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {

            @Override
            public void onStopTrackingTouch(SeekBar seekBar) {

            }

            @Override
            public void onStartTrackingTouch(SeekBar seekBar) {

            }

            @Override
            public void onProgressChanged(SeekBar seekBar, int progress,
                                          boolean fromUser) {
                if (fromUser) {
                    audio.setStreamVolume(AudioManager.STREAM_MUSIC, progress,
                            0);
                }
            }
        });
    }

    // 继承接口,实现的点击事件的方法
    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.start:// 开始播放音乐
                media.reset();
                try {
                    // 从Assets里面打开当前的音乐
                    AssetFileDescriptor openFd = getAssets().openFd(list.get(0));
                    FileDescriptor file = openFd.getFileDescriptor();
                    media.setDataSource(file, openFd.getStartOffset(),
                            openFd.getLength());
                    media.prepare();
                } catch (IOException e) {
                    e.printStackTrace();
                }
                media.start();
                break;
            default:
                break;
        }

    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值