Android开发中怎么实现一个音乐播放器功能?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
创新互联-云计算及IDC服务提供商,涵盖公有云、IDC机房租用、珉田数据中心、等保安全、私有云建设等企业级互联网基础服务,来电联系:028-86922220
具体实现
首先是布局文件中添加了如下代码,这些代码就是实现控制台的,给整体设置了一个invisible,为了让他点击有音乐播放的时候控制台才显示出来:
/>
其中的
这个是自定义圆形图片,之前的博客已经说过了,具体可以去看,然后控制的这种效果是背景添加了一个shap
代码如下:
<?xml version="1.0" encoding="utf-8"?>
点击上一曲下一期的变化效果:
添加了一个点击的selector:
布局文件搞定,下面是代码中的实现
首先就是声明的控件和一些变量增加了 这几个:
private int playPosition;//当前播放歌曲的序号 private boolean IsPlay = false;//是否有歌曲在播放 private Button playPause;//暂停和播放按钮 private TextView song;//歌曲名 private TextView singer;//歌手名 private ImageView imageView;//控制台的图片 private Animation animation;//动画
点击ListView的一下改变:
mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) { //创建一个播放音频的方法,把点击到的地址传过去 //list.get(i).path这个就是歌曲的地址 play(list.get(i).path); ////播放暂停按钮图片变成播放状态 playPause.setBackgroundResource(R.drawable.pause_press); //把当前点击的item的position拿到,知道当前播放歌曲的序号 playPosition = i; //播放音乐的时候把是否在播放赋值为true IsPlay = true; //点击item让控制台显示出来 findViewById(R.id.main_control_rl).setVisibility(View.VISIBLE); } });
然后就是几个button的点击事件了:
/** * 底部控制栏的点击事件 * * @param view */ public void control(View view) { switch (view.getId()) { case R.id.playing_btn_previous://上一曲 //如果播放歌曲的序号小于或者等于0的话点击上一曲就提示已经是第一首了 if (playPosition <= 0) { Toast.makeText(MainActivity.this, "已经是第一首歌了", Toast.LENGTH_SHORT).show(); } else { //让歌曲的序号减一 playPosition--; //播放 play(list.get(playPosition).path); playPause.setBackgroundResource(R.drawable.pause_press); } break; case R.id.playing_btn_pause://暂停和播放 if (IsPlay == false) { //播放暂停按钮图片变成播放状态 playPause.setBackgroundResource(R.drawable.pause_press); //继续播放 mediaPlayer.start(); imageView.startAnimation(animation); IsPlay = true;//是否在播放赋值为true animation.start(); Toast.makeText(MainActivity.this, "播放" + list.get(playPosition).song, Toast.LENGTH_SHORT).show(); } else { //播放暂停按钮图片变成暂停状态 playPause.setBackgroundResource(R.drawable.play_press); //暂停歌曲 mediaPlayer.pause(); imageView.clearAnimation();//停止动画 IsPlay = false;//是否在播放赋值为false Toast.makeText(MainActivity.this, "暂停" + list.get(playPosition).song, Toast.LENGTH_SHORT).show(); } break; case R.id.playing_btn_next://下一曲 //歌曲序号大于或者等于歌曲列表的大小-1时,让歌曲序号为第一首 if (playPosition >= list.size() - 1) { playPosition = 0; } else { //点击下一曲让歌曲的序号加一 playPosition++; } //播放 play(list.get(playPosition).path); //播放暂停按钮图片变成播放状态 playPause.setBackgroundResource(R.drawable.pause_press); break; } }
最后还有设置歌曲名和歌手名的:
/** * 控制歌曲和歌手TextView的方法 */ private void setText() { song.setText(list.get(playPosition).song); song.setSelected(true);//当歌曲名字太长是让其滚动 singer.setText(list.get(playPosition).singer); }
关于Android开发中怎么实现一个音乐播放器功能问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注创新互联行业资讯频道了解更多相关知识。