我正在开发一个包含100个声音效果的应用程序。 在播放一些声音之后,应用程序关闭。我明白问题会占用内存的所有可用空间。我尝试使用Release()方法,但在调用此方法后,我无法再次播放声音。 我也尝试使用onDestroy()方法将mediaplayer的对象设置为null,但由于这些对象必须是final,所以我不能这样做。 你的建议是什么? 这是我的代码:
final MediaPlayer mp1 = MediaPlayer.create(MainActivity.this, R.raw.a1);
btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (i[0] == false)
{
mp1.start();
Toast.makeText(getBaseContext(), "horn", Toast.LENGTH_SHORT).show();
b1.setBackgroundResource(R.drawable.stop_button);
i[0] = true;
}
else
{
mp1.pause();
mp1.seekTo(0);
b1.setBackgroundResource(R.drawable.horn);
i[0] = false;
}
}
});
mp1.setOnCompletionListener(new OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
b1.setBackgroundResource(R.drawable.horn);
}
});
答案 0 :(得分:1)
你尝试过这样的事吗?
您可以在OnDestroy()方法中调用release()。
@Override
public void onDestroy(){
super.onDestroy();
mp.release();
}