2016-06-27 3 views
0

を音を果たしたのonCreateメソッドは、音が二回演奏stardときのonCreateメソッドで二回MediaPlayerのは、MediaPlayerののonCreateメソッドで二回

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

if(mediaPlayer.isPlaying()) 
     { 
      mediaPlayer.stop(); 
     } 

     mediaPlayer.reset(); 
     mediaPlayer = MediaPlayer.create(MainActivity.this, R.raw.v1); 
     mediaPlayer.start(); 

    } 

を音を果たしました。それを修正するには?

+0

はたぶんあなたのコード内での活動のいくつかのインスタンスでありますか? –

+0

@IllyaBublyk、そのすべてのn onCreateメソッドのコード。 – user2757168

答えて

0

音のonCreateを開始するための正しい方法:次に破壊にそれを止める

MediaPlayer mPlayer; 
public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     mPlayer = MediaPlayer.create(FakeCallScreen.this, R.raw.v1); 
     mPlayer.start(); 
    } 

を:

@Override 
public void onDestroy() { 
    mPlayer.stop(); 
    super.onDestroy(); 
} 
+0

oOうまくいきましたが、onDestroyサウンドが2回呼び出されることはありませんでした。どうして? – user2757168

+0

これは簡単ではなく、どのような活動が進むかによって決まります。回転装置、キーボードを開くと活動を再現することができます。一般に、システムはデバイス設定が変更されたときにアクティビティを再作成します。 –

関連する問題