初学者Android音乐播放器
时间: 2023-12-19 14:31:47 浏览: 31
以下是一个初学者Android音乐播放器的示例代码,它可以显示本地歌曲并播放,可切换下一首,上一首,具有暂停等的功能。需要注意的是,自己音乐路径配置要加/storage/...。
```java
public class MainActivity extends AppCompatActivity {
private MediaPlayer mediaPlayer = new MediaPlayer();
private int position = 0;
private List<String> musicList = new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 获取本地音乐列表
getMusicList();
// 播放音乐
playMusic(position);
// 下一首
Button nextBtn = findViewById(R.id.next_btn);
nextBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (position < musicList.size() - 1) {
position++;
} else {
position = 0;
}
playMusic(position);
}
});
// 上一首
Button prevBtn = findViewById(R.id.prev_btn);
prevBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (position > 0) {
position--;
} else {
position = musicList.size() - 1;
}
playMusic(position);
}
});
// 暂停
Button pauseBtn = findViewById(R.id.pause_btn);
pauseBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (mediaPlayer.isPlaying()) {
mediaPlayer.pause();
} else {
mediaPlayer.start();
}
}
});
}
// 获取本地音乐列表
private void getMusicList() {
ContentResolver contentResolver = getContentResolver();
Cursor cursor = contentResolver.query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null, null, null, null);
if (cursor != null) {
while (cursor.moveToNext()) {
String path = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.DATA));
musicList.add(path);
}
cursor.close();
}
}
// 播放音乐
private void playMusic(int position) {
try {
mediaPlayer.reset();
mediaPlayer.setDataSource(musicList.get(position));
mediaPlayer.prepare();
mediaPlayer.start();
} catch (IOException e) {
e.printStackTrace();
}
}
}
```