異なる Mediaplayer インスタンスで同時に 2 つのオーディオ ファイルを再生するアプリケーションを開発しています。メソッドを実装した画面の回転時にメディアプレーヤーの状態を保持するには
public Object onRetainNonConfigurationInstance()
{
HashMap<String,Object> player = new HashMap<String,Object>();
MediaPlayer instance = mp;
mp = null;
MediaPlayer instance1 = mp1;
mp1 = null;
player.put("mp", instance);
player.put("mp1", instance1);
return player;
}
onCreate() では、
HashMap<String, Object> playerhandle = (HashMap<String, Object>)getLastNonConfigurationInstance();
mp = (MediaPlayer)playerhandle.get("mp");
if (mp == null)
{
mp = new MediaPlayer();
}
mp1 = (MediaPlayer)playerhandle.get("mp1");
if (mp1 == null)
{
mp1 = new MediaPlayer();
}
logcat に NullPointerException を表示する........