mediaplayer でアプリケーションを開発しています。2 つのレイアウトで画面の向きを処理しました。onsavedInstancestate と onrestoreinstancesstate を使用しました。画面の回転時にレイアウトが変更され、メディアプレーヤーの状態は保持されますが、UI が応答しません。
mediaplayer オブジェクトの状態を保存して保持しました
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;
}
if(getLastNonConfigurationInstance()!=null)
{
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();
}
}
また、 onsaveinstancestate および onrestoreinstancestate でデータを保持します。メディアプレーヤーは、画面の向きを変更した後も状態を保持します (オーディオは画面の向きで解釈されずに再生されます) が、向きの変更後に UI が応答しません。問題を把握できません.....