使用android studio编写程序利用服务、MediaPlayer实现只靠一个按钮实现播放音乐、停止播放音乐的功能
时间: 2023-11-28 22:04:25 浏览: 101
基于android_studio开发的播放本地音乐_内置简易的播放暂停
以下使用服务和MediaPlayer实现只靠一个按钮实现播放音乐、停止播放音乐的Android Studio示例代码:
1. 在布局文件中添加一个按钮:
```xml
<Button
android:id="@+id/btn_play_pause"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Play/Pause" />
```
2. 在MainActivity.java中实现按钮的点击事件,并创建服务:
```java
public class MainActivity extends AppCompatActivity {
private Button btnPlayPause;
private Intent serviceIntent;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnPlayPause = findViewById(R.id.btn_play_pause);
serviceIntent = new Intent(this, MusicService.class);
btnPlayPause.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (isMyServiceRunning(MusicService.class)) {
// 如果服务正在运行,停止播放音乐,并停止服务
stopService(serviceIntent);
btnPlayPause.setText("Play");
} else {
// 如果服务未运行,开始播放音乐,并启动服务
startService(serviceIntent);
btnPlayPause.setText("Pause");
}
}
});
}
// 判断服务是否正在运行
private boolean isMyServiceRunning(Class<?> serviceClass) {
ActivityManager manager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
for (ActivityManager.RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) {
if (serviceClass.getName().equals(service.service.getClassName())) {
return true;
}
}
return false;
}
}
```
3. 创建MusicService类,并在其中实现播放音乐的逻辑:
```java
public class MusicService extends Service {
private MediaPlayer mediaPlayer;
@Override
public void onCreate() {
super.onCreate();
mediaPlayer = MediaPlayer.create(this, R.raw.music); // 播放本地音乐文件
mediaPlayer.setLooping(true); // 循环播放
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
if (!mediaPlayer.isPlaying()) {
mediaPlayer.start();
}
return super.onStartCommand(intent, flags, startId);
}
@Override
public void onDestroy() {
super.onDestroy();
if (mediaPlayer != null) {
mediaPlayer.stop();
mediaPlayer.release();
}
}
@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}
}
```
这样,当用户点击按钮时,会根据服务的运行状态来启动或停止服务,从而实现播放和停止播放音乐的功能。
阅读全文