Android实现音乐后台播放

Service是一个生命周期长且没有用户界面的程序,当程序在各个activity中切换的时候,我们可以利用service来实现背景音乐的播放,即使当程序退出到后台的时候,音乐依然在播放。

实现代码如下:

(1)src/.../MainActivity.java

public class MainActivity extends Activity implements OnClickListener {
	private Button mBtnPrevious; // 上一首
	private Button mBtnPlay; // 播放
	private Button mBtnNext; // 下一首
	private Button mBtnPause; // 暂停
	private ComponentName component; // 用于启动服务

	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		// 得到布局中的控件
		findView();
		// 绑定控件事件
		setListener();
	}

	// 得到布局中的控件
	private void findView() {

		component = new ComponentName(this, MusicService.class);
		mBtnPrevious = (Button) findViewById(R.id.previous);
		mBtnPlay = (Button) findV
  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的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执行相应的操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值