我有一项活动可以在分数屏幕中循环播放一首简单的歌曲,具体取决于玩家在我的游戏中是赢还是输。但是,退出我的乐谱活动后,声音将继续循环,直到垃圾收集发生。以下是我的代码的片段。我目前强制垃圾收集停止声音!为什么不停止()或释放()工作?
public void onPause(){
super.onPause();
_sounds.release();
}
public void load(){
_victory = MediaPlayer.create(mActivity, R.raw.victory);
_victory.setLooping(true);
_failure = MediaPlayer.create(mActivity, R.raw.flutedeath);
_failure.setLooping(true);
}
public void release(){
_victory.stop();
_victory.release();
_victory = null;
_failure.stop();
_failure.release();
_failure = null;
System.gc();
}
答案 0 :(得分:0)
您是否尝试使用类似这样的OnCompletionListener:
try {
mp = MediaPlayer.create(this, fileId);
mp.start();
mp.setOnCompletionListener(new OnCompletionListener() {
public void onCompletion(MediaPlayer mp) {
mp.release();
mp = null;
}
});
} catch (Exception exception) {
}