Я разрабатываю приложение, содержащее 100 звуковых эффектов. после воспроизведения некоторых звуков, действие приложения закрывается. Я понял, что проблема будет потреблять все свободное пространство памяти. Я пробовал использовать метод Release(), но после вызова этого метода я не могу снова воспроизвести звук. Я также попытался использовать метод onDestroy(), чтобы установить объект медиаплеера равным null, но поскольку такие объекты должны быть окончательными, я не могу этого сделать. Какое ваше предложение? Вот мой код:Освобождение потребляемой памяти после использования MediaPlayer
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);
}
});
'приложение силы закрывает заботу, чтобы показать трассировку стека? – WarrenFaith
может быть ['SoundPool'] (http://developer.android.com/reference/android/media/SoundPool.html) более подходит для вас? –
не могли бы вы разместить свой журнал аварий? – yushulx