20種類の音のうち1つを毎秒ランダムに再生するアプリがあります。ほぼ1000回成功すると、メディアプレーヤーの作成関数は常にnullを返し始めます。アプリを終了して再起動しても問題は解決しません。唯一の解決策は、アプリを再度インストールするか、デバイスの電源をオフにしてからオンにすることです。
この状態から回復する方法はありますか?リリースまたはリセットすると、メディアプレーヤーはすでにnullになっており、例外が発生します。
私が毎秒行うシーケンスは次のとおりです。
if (mp != null)
{
if (mp.isPlaying())
{
mp.stop();
}
if (mp != null) mp.release();
if (mp != null) mp = null;
}
mp = MediaPlayer.create(this, R.raw.sound);
if (mp !=null)
{
mp.setOnPreparedListener(new MediaPlayer.OnPreparedListener()
{
public void onPrepared(MediaPlayer mp)
{
if (mp != null) mp.start();
}
};
}
else
{
// error, what should I do here to recover from this situation?
}