2016-06-27 1 views
0

медиаплеера играет звук дважды в методе OnCreateмедиаплеера играет звук дважды в методе 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(); 

    } 

Когда метод OnCreate Stard звук играл дважды. Как это исправить?

+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 звук вызывается дважды. Зачем? – user2757168

+0

Ответ на это не так просто .. это зависит от того, какая активность проходит. Например: вращающееся устройство, открытие клавиатуры может привести к воссозданию активности. Как правило, система будет воссоздавать активность при изменении конфигурации устройства .. если вы предоставите свой код .. мы можем помочь лучше. –