Android实验音乐播放器代码
时间: 2023-06-14 16:02:41 浏览: 74
以下是一个简单的 Android 音乐播放器的代码,包括播放、暂停、停止、前进、后退等基本功能:
1. 在布局文件中添加一个 MediaPlayer 控件:
```
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<MediaPlayer
android:id="@+id/mediaPlayer"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@+id/button_prev"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Prev"/>
<Button
android:id="@+id/button_play"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Play"/>
<Button
android:id="@+id/button_pause"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Pause"/>
<Button
android:id="@+id/button_stop"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Stop"/>
<Button
android:id="@+id/button_next"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Next"/>
</LinearLayout>
</LinearLayout>
```
2. 在 Java 代码中实现基本的播放器功能:
```
public class MainActivity extends AppCompatActivity {
private MediaPlayer mediaPlayer;
private Button buttonPrev;
private Button buttonPlay;
private Button buttonPause;
private Button buttonStop;
private Button buttonNext;
private int[] musicIds = {R.raw.music1, R.raw.music2, R.raw.music3};
private int currentMusicIndex = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mediaPlayer = findViewById(R.id.mediaPlayer);
mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mediaPlayer) {
buttonNext.performClick();
}
});
buttonPrev = findViewById(R.id.button_prev);
buttonPrev.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (currentMusicIndex > 0) {
currentMusicIndex--;
} else {
currentMusicIndex = musicIds.length - 1;
}
mediaPlayer.stop();
mediaPlayer = MediaPlayer.create(MainActivity.this, musicIds[currentMusicIndex]);
mediaPlayer.start();
}
});
buttonPlay = findViewById(R.id.button_play);
buttonPlay.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (mediaPlayer.isPlaying()) {
return;
}
mediaPlayer.start();
}
});
buttonPause = findViewById(R.id.button_pause);
buttonPause.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (!mediaPlayer.isPlaying()) {
return;
}
mediaPlayer.pause();
}
});
buttonStop = findViewById(R.id.button_stop);
buttonStop.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
mediaPlayer.stop();
mediaPlayer = MediaPlayer.create(MainActivity.this, musicIds[currentMusicIndex]);
}
});
buttonNext = findViewById(R.id.button_next);
buttonNext.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (currentMusicIndex < musicIds.length - 1) {
currentMusicIndex++;
} else {
currentMusicIndex = 0;
}
mediaPlayer.stop();
mediaPlayer = MediaPlayer.create(MainActivity.this, musicIds[currentMusicIndex]);
mediaPlayer.start();
}
});
}
@Override
protected void onDestroy() {
super.onDestroy();
mediaPlayer.stop();
mediaPlayer.release();
}
}
```
其中,`musicIds` 数组存储了音乐文件的资源 ID,`currentMusicIndex` 表示当前正在播放的音乐文件的索引。在点击播放、暂停、停止、前进、后退按钮时,分别调用 `start()`、`pause()`、`stop()`、`create()` 方法来实现相应的功能。注意,在播放完成时,需要自动播放下一首音乐,这里使用了 `setOnCompletionListener()` 方法来监听播放完成事件。最后,在 Activity 销毁时,需要停止播放和释放 MediaPlayer 对象。