Android中不用Service跨Avtivity仍然可以播放音乐的一个简单方法

首先创建一个专门用来播放音乐文件(在这里只播放已经导入到res/raw/下的音频文件)的类
MusicPlayer
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;
}
}



然后,新建一个Activity,我命名为MyActivity

MyActivity.java
public class MyActivity extends Activity {
public static MusicPlayer musicPlayer;

@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);

if(musicPlayer == null) {
SysSetting.getInstance(getApplicationContext()).load();
musicPlayer = new MusicPlayer(getApplicationContext());
musicPlayer.playBgSound(R.raw.welcome);
}
}
}


在这里已经完成了大部分的工作,最后一步就是,让你所需要跨Activity播放背景音乐而不使用Service的Activity都继承与这个Activity就可以了。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值