2

何百もの効果音を含むアプリケーションを開発しています。いくつかのサウンドを再生した後、適用力が閉じます。問題がメモリの利用可能なスペースをすべて消費していることを理解しました。Release() メソッドを使用してみましたが、このメソッドが呼び出された後、サウンドを再度再生できません。また、 onDestroy() メソッドを使用してメディアプレーヤーのオブジェクトを null に設定しようとしましたが、これらの種類のオブジェクトは最終でなければならないため、これを行うことはできません。あなたの提案は何ですか?これが私のコードです:

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);

        }
    });
4

1 に答える 1