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 { //利用音频文件创建一个MeidaPlayerMediaPlayer 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;}}public class MyActivity extends Activity {public static MusicPlayer musicPlayer;@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);if(musicPlayer == null) {SysSetting.getInstance(getApplicationContext()).load();musicPlayer = new MusicPlayer(getApplicationContext());musicPlayer.playBgSound(R.raw.welcome);}}}