2016-09-09 19 views
0

ボタンを押したときに再生するWAVサウンドがあります。再生中にもう一度再生しようとすると、少し遅延があり、意図したとおりに正しく再生されません。私はきれいで速いいつでも、すべてのプレスでサウンド遊びを持ってしようとしています、ここに私のJavaコードはonClickでwavサウンドを再生すると遅延の問題が発生する

public class MainActivity extends AppCompatActivity { 
 

 

 
    private MediaPlayer mp; 
 

 

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

 

 

 

 
     final ImageView bellImage = (ImageView) findViewById(R.id.bellImage); 
 

 
     bellImage.setOnClickListener(new View.OnClickListener() { 
 
      @Override 
 
      public void onClick(View view) { 
 
       loopMP(); 
 
       mp = MediaPlayer.create(getApplicationContext(), R.raw.ding2); 
 
       mp.start(); 
 

 
      } 
 
     }); 
 

 
    } 
 

 
    public void playMusic() { 
 

 
     if (mp != null) { 
 
      mp.start(); 
 
     } 
 
    } 
 

 

 
    @Override 
 
    protected void onDestroy() { 
 

 
     if (mp != null && mp.isPlaying()) { 
 

 
      mp.stop(); 
 
      mp.release(); 
 
      mp = null; 
 
     } 
 
     super.onDestroy(); 
 
    } 
 

 
    private void loopMP(){ 
 
     if (mp != null){ mp.stop(); mp.release(); mp = null; } 
 
    } 
 

 

 

 
}

答えて

0

代わりにリリースの()あなたに感謝し、すべて)(MediaPlayerのオブジェクトを作成していますユーザーがボタンをクリックすると、()を1回だけ作成しようとします。次に、onClick()の中で、seekTo(0)を使ってメディアファイルの先頭から巻き戻し、start()を呼び出してもう一度再生します。

+0

私は理解していますが、onClickではサウンドがいつでも再び再生できるようにループがあります!あなたは私があなたが意味するものの一例を示すことができますか?ありがとうございました – james

関連する問題