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<String> mList = new ArrayList<>();
private ArrayList<String> mList2 = new ArrayList<>();
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("HandlerLeak")
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<?> 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("播放");
}else {
mediaPlayer.start();
mBtn1.setText("暂停");
}
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;
}
}
}