android studio音乐后台播放开关按钮
时间: 2023-12-16 07:05:10 浏览: 64
以下是一个简单的Android Studio音乐后台播放开关按钮的实现方法:
1.在布局文件中添加一个Switch控件:
```xml
<Switch
android:id="@+id/switch_bgm"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="背景音乐"
android:checked="true" />
```
2.在Activity中获取Switch控件,并设置监听器:
```java
public class MainActivity extends AppCompatActivity {
private Switch switchBgm;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
switchBgm = findViewById(R.id.switch_bgm);
switchBgm.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
Intent intent = new Intent(MainActivity.this, BgmService.class);
if (isChecked) {
intent.setAction(BgmService.ACTION_MUSIC_PLAY);
} else {
intent.setAction(BgmService.ACTION_MUSIC_PAUSE);
}
startService(intent);
}
});
}
@Override
protected void onDestroy() {
super.onDestroy();
stopService(new Intent(this, BgmService.class));
}
}
```
3.在BgmService中根据接收到的Action执行相应的操作:
```java
public class BgmService extends Service {
public static final String ACTION_MUSIC_PLAY = "com.example.bgm.ACTION_MUSIC_PLAY";
public static final String ACTION_MUSIC_PAUSE = "com.example.bgm.ACTION_MUSIC_PAUSE";
private MediaPlayer mediaPlayer;
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
String action = intent.getAction();
if (ACTION_MUSIC_PLAY.equals(action)) {
playMusic();
} else if (ACTION_MUSIC_PAUSE.equals(action)) {
pauseMusic();
}
return super.onStartCommand(intent, flags, startId);
}
private void playMusic() {
if (mediaPlayer == null) {
mediaPlayer = MediaPlayer.create(this, R.raw.bgm);
mediaPlayer.setLooping(true);
}
mediaPlayer.start();
}
private void pauseMusic() {
if (mediaPlayer != null && mediaPlayer.isPlaying()) {
mediaPlayer.pause();
}
}
@Override
public void onDestroy() {
super.onDestroy();
if (mediaPlayer != null) {
mediaPlayer.release();
mediaPlayer = null;
}
}
@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}
}
```
在上述代码中,我们在BgmService中定义了两个Action:ACTION_MUSIC_PLAY和ACTION_MUSIC_PAUSE,分别用于播放和暂停背景音乐。在MainActivity中,我们获取了Switch控件,并设置了监听器,在监听器中根据Switch的状态发送相应的Action给BgmService。在BgmService中,我们根据接收到的Action执行相应的操作。