2

Androidで簡単なアプリケーションを作成し、5つのオーディオファイルから効果音を使用できますが、オブジェクトのメモリを解放できません。

mBackground = MediaPlayer.create(context, R.raw.intro);
        mRiver  = MediaPlayer.create(context, R.raw.river);
        mClapping = MediaPlayer.create(context, R.raw.ap);
        mTap = MediaPlayer.create(context, R.raw.tap);
        mError = MediaPlayer.create(context, R.raw.error);
        mWonder = MediaPlayer.create(context, R.raw.ap2);
        if(GameDashBoard.soundInGame) {mBackground.start(); mBackground.setLooping(true);

メモリを解放できますが、このコードは機能しません。

mRiver.release();
mClapping.release();
mTap.release();
mWonder.release();

問題は log cat の出力です---- オーディオ キャッシュ ヒープ オーバーフロー。

4

1 に答える 1

0

soundpool はすべてのサウンドをメモリに保持します。メディア プレーヤーの 1 つのインスタンスだけで、おそらくここに表示されている必要があるでしょう。これを行うと、極端な対策を講じなくても、メモリの問題が解消されるはずです。

于 2012-08-23T05:06:05.497 に答える