音乐播放器

XML:

<<span style="color:#000080;font-weight:bold;">Button
android:id="@+id/mBtn1"
android:text="播放"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<<span style="color:#000080;font-weight:bold;">Button
android:id="@+id/mBtn2"
android:text="下一首"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<<span style="color:#000080;font-weight:bold;">Button
android:id="@+id/mBtn3"
android:text="上一首"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<<span style="color:#000080;font-weight:bold;">SeekBar
android:id="@+id/mSeekBar"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<<span style="color:#000080;font-weight:bold;">ListView
android:id="@+id/mListView"
android:layout_width="match_parent"
android:layout_height="wrap_content">

</<span style="color:#000080;font-weight:bold;">ListView>
 

Activity:

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

private Button mBtn1;
private Button mBtn2;
private Button mBtn3;
private SeekBar mSeekBar;
private ListView mListView;
private ArrayList&lt;String&gt; mList = new ArrayList&lt;&gt;();
private ArrayList&lt;String&gt; mList2 = new ArrayList&lt;&gt;();
private MediaPlayer mediaPlayer;
private int a = 5 ;
private MyListAdapter myListAdapter;

@Override
    protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();
        initDate();
        initMusic();
        initDianji();
        initJindutiao();
handler. sendEmptyMessageDelayed(2,500);
    }
@SuppressLint(&quot;HandlerLeak&quot;)
    Handler handler = new Handler(){
@Override
        public void handleMessage(Message msg) {
super.handleMessage(msg);
if (msg.what==2){
//设置进度条的总进度
                mSeekBar.setMax(mediaPlayer.getDuration());
//设置当前进度条的进度
                mSeekBar.setProgress(mediaPlayer.getCurrentPosition());
//递归
                sendEmptyMessageDelayed(2,500);
            }
        }
    };
private void initJindutiao() {
mSeekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
            public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
//判断进度条和播放器的进度
                if (fromUser){
//进度条拖到哪里就播放到哪里
                    mediaPlayer.seekTo(progress);
                }
            }

@Override
            public void onStartTrackingTouch(SeekBar seekBar) {

            }

@Override
            public void onStopTrackingTouch(SeekBar seekBar) {

            }
        });
    }

private void initDianji() {
myListAdapter = new MyListAdapter(mList, MainActivity.this);
mListView.setAdapter(myListAdapter);
mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
            public void onItemClick(AdapterView&lt;?&gt; parent, View view, int position, long id) {
mediaPlayer.stop();
a = position ;
                initMusic();
            }
        });
    }

private void initMusic() {
//获取音乐播放器
        mediaPlayer = new MediaPlayer();
try {
//设置所要播放的音乐路径
            mediaPlayer.setDataSource(mList2.get(a));
//准备播放
            mediaPlayer.prepare();
//开始播放
            mediaPlayer.start();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

private void initDate() {
//查询所有文件
        Cursor query = getContentResolver().query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null, null, null, null, null);
while (query.moveToNext()){
//获取音乐的名字
            String string = query.getString(query.getColumnIndex(MediaStore.Audio.Media.TITLE));
mList.add(string);
//获取音乐的路径
            String string2 = query.getString(query.getColumnIndex(MediaStore.Audio.Media.DATA));
mList2.add(string2);
        }
    }

private void initView() {
mBtn1 = (Button) findViewById(R.id.mBtn1);
mBtn2 = (Button) findViewById(R.id.mBtn2);
mBtn3 = (Button) findViewById(R.id.mBtn3);
mSeekBar = (SeekBar) findViewById(R.id.mSeekBar);
mListView = (ListView) findViewById(R.id.mListView);

mBtn1.setOnClickListener(this);
mBtn2.setOnClickListener(this);
mBtn3.setOnClickListener(this);
    }

@Override
    public void onClick(View v) {
switch (v.getId()) {
case R.id.mBtn1:
if (mediaPlayer.isPlaying()){
mediaPlayer.pause();
mBtn1.setText(&quot;播放&quot;);
                }else {
mediaPlayer.start();
mBtn1.setText(&quot;暂停&quot;);

                }
break;
case R.id.mBtn2:
mediaPlayer.stop();
a++ ;
if (a == mList2.size()){
a = 0 ;
                    }
                    initMusic();
break;
case R.id.mBtn3:
mediaPlayer.stop();
a-- ;
if (a == mList2.size()){
a = 0 ;
                }
                initMusic();
break;
        }
    }

}


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值