Android 音乐播放器的开发教程(八)歌曲的切换和进度条的拖动 ----- 小达

本文是Android音乐播放器开发系列的第八部分,主要讲解如何实现在应用中进行歌曲切换以及进度条的拖动功能,包括播放模式的选择,如单曲循环、顺序播放等。
摘要由CSDN通过智能技术生成

歌曲的切换和进度条的拖动



        大家新年快乐~~~~~~大笑,2015年的第一天哦,前两天偷了点懒,木有继续完成我的博客,话说这博客写的时间也真够长的啊,写了一年了都还没有弄完,尴尬,今天我就是来兑现上一次的承诺,将进度条的拖动和切歌的功能加入到播放器中.

      首先是进度条的拖动,其实现的原理就是拖动进度条松手之后,将当前进度条处于的位置用Broadcast的方式发送给service,让service从当前位置开始播放.在网上找了哈,按钮有onClickListener,那么我们自然可以联想到,进度条是否有个类似的东西呢?果然就有个东西叫OnSeekBarChangeListener,需要重写其中的三个方法,onProgressChanged,onStartTrackingTouch,onStopTrackingTouch,小达在这里实现的是最后一个方法,前面两个都没管,从命名来看,三个函数的意思很容易理解了,第一个是进度条的值每变动一哈,就要调用(有没有感觉进度条这个样子好累好累的,,,100块都不给别人),第二个就是刚开始改变就调用,我们需要的是在放手的那一刻,进度条的数值,所以第三个还是很不错的..

     实现的代码如下所示,在MainActivity给进度条加上把:
private Intent progress_change_intent_to_service;    //先来一个发送广播的Intent
progress_change_intent_to_service = new Intent("com.example.communication.PROGRESS_BAR");
</pre><pre name="code" class="java">
seek_bar.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) {
                current_position_bar = seekBar.getProgress();
                progress_change_intent_to_service.putExtra("current_position",current_position_bar);
                sendBroadcast(progress_change_intent_to_service);
            }
        });

  再切换到PlayerService.java中,创建广播的接收器:
    private ProgressChangeReceiver progressChangeReceiver;

        progressChangeReceiver = new ProgressChangeReceiver();

    private class ProgressChangeReceiver extends BroadcastReceiver {
        @Override
        public void onReceive(Context context, Intent intent) {
            current_position = intent.getIntExtra("current_position", 0);
            playMusic(current_position);
        }
    }


        IntentFilter intentProgressChangeFilter = new IntentFilter();

        intentProgressChangeFilter.addAction("com.example.communication.PROGRESS_BAR");

        registerReceiver(progressChangeReceiver, intentProgressChangeFilter);

        到这里,进度条就可以随心而动
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值