Android通过Service实现音乐后台播放

本文介绍了如何在Android应用程序中使用Service组件实现音乐后台播放。Service作为后台服务,即使应用退出仍然能继续播放音乐。启动Service通过Context.startService(),停止则可以使用Context.stopService()或Service自身的stopSelf()方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Android应用程序启动后播放音乐,而当应用程序退出后音乐也会随之停止,要想实现后台播放,这时候就需要Android中的另一组件——Service。


Service是运行在后台的东西,级别与activity差不多。既然说service是运行在后台的服务,那么它就是不可见的,没有界面的东西。它可以启动并运行,直至有人停止了它或它自己停止。在这种方式下,它以调用Context.startService()启动,而以调用Context.stopService()结束。它可以调用Service.stopSelf() 或 Service.stopSelfResult()来自己停止。不论调用了多少次startService()方法,你只需要调用一次stopService()来停止服务。


下面说下通过Service来实现后台播放音乐。


public class MusicPlayer implements MediaPlayer.OnCompletionListener, MediaPlayer.OnErrorListener {;
	private MediaPlayer bgPlayer;
	
	public MusicPlayer(Context context) {
		this.context = context;
	}
        //当音乐播放完毕时
	public void onCompletion(MediaPlayer mp) {
		stopBgSound();
	}
        //当音乐播放发生错误时
	public boolean onError(MediaPlayer mp, int what, int extra) {
		stopBgSound();
		return false;
	}
	//播放背景音乐,传入的paramInt为res/raw/目录下的音频文件的引用
	public void playBgSound(int paramInt) {
		stopBgSound();
		
		try {
                        //利用音频文件创建一个MeidaPlayer
			MediaPlayer mediaPlayer = MediaPlayer.create(context, paramInt);
			bgPlayer = mediaPlayer;
			bgPlayer.setOnCompletionListener(this);
                        //设置是否循环播放
			bgPlayer.setLooping(true);
                        //开始播放
			bgPlayer.start();
		} catch (IllegalStateException e) {
			e.printStackTrace();
		} 
	}
	//停止播放背景音乐
	public void stopBgSound() {
		if(bgPlayer == null) 
			return;
		if(bgPlayer.isPlaying())
			bgPlayer.stop();
		bgPlayer.release();
		bgPlayer = null;
	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值