Android开发中怎么实现一个音乐播放器功能

Android开发中怎么实现一个音乐播放器功能?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

创新互联-云计算及IDC服务提供商,涵盖公有云、IDC机房租用、珉田数据中心、等保安全、私有云建设等企业级互联网基础服务,来电联系:028-86922220

具体实现

首先是布局文件中添加了如下代码,这些代码就是实现控制台的,给整体设置了一个invisible,为了让他点击有音乐播放的时候控制台才显示出来:

 
 
   
 
   
  /> 
 
   
 
   
 
   

其中的

 

这个是自定义圆形图片,之前的博客已经说过了,具体可以去看,然后控制的这种效果是背景添加了一个shap

Android开发中怎么实现一个音乐播放器功能

代码如下:

<?xml version="1.0" encoding="utf-8"?> 
 
  
  
  
 

点击上一曲下一期的变化效果:

Android开发中怎么实现一个音乐播放器功能

添加了一个点击的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开发中怎么实现一个音乐播放器功能问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注创新互联行业资讯频道了解更多相关知识。


新闻标题:Android开发中怎么实现一个音乐播放器功能
网站网址:http://myzitong.com/article/pogppc.html