2016-07-27 6 views
-2

クリックしたときに再生する画像ビューが多数あり、再生できました。 しかし、別のサウンドを再生するはずの別のイメージをクリックしたいとき、サウンドは停止しますが、同じ再生ボタンをクリックすると再開できないという問題があります。他のボタンをクリックして別のオーディオを再生したときに音声を止めたい

audio1 = (ImageView) popupView.findViewById(R.id.lesson1_audio_gramar_1); 
      assert audio1 != null; 
      audio1.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 
        if (mMediaPlayer == null) { 
         mMediaPlayer = MediaPlayer.create(Lesson1Activity.this, R.raw.lesson1); 
        } 


        if (mMediaPlayer.isPlaying()) { 

         mMediaPlayer.pause(); 
         audio1.setImageResource(R.drawable.ic_play_circle_filled_black_48dp); 
         try { 
          mMediaPlayer.prepare(); 
         } catch (IllegalStateException e) { 

          e.printStackTrace(); 
         } catch (IOException e) { 

          e.printStackTrace(); 
         } 

        } else { 

         mMediaPlayer.start(); 
         audio1.setImageResource(R.drawable.ic_pause_circle_filled_black_48dp); 
         mMediaPlayer.setOnCompletionListener(mCompletionListener); 
        } 
       } 
      }); 

      audio2 = (ImageView) popupView.findViewById(R.id.lesson1_audio_gramar_2); 
      assert audio2 != null; 
      audio2.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 

        if (mMediaPlayer == null) { 
         mMediaPlayer = MediaPlayer.create(Lesson1Activity.this, R.raw.lesson2); 
        } 

        if (mMediaPlayer.isPlaying()) { 

         mMediaPlayer.pause(); 
         audio2.setImageResource(R.drawable.ic_play_circle_filled_black_48dp); 
         try { 
          mMediaPlayer.prepare(); 
         } catch (IllegalStateException e) { 

          e.printStackTrace(); 
         } catch (IOException e) { 
          e.printStackTrace(); 
         } 

        } else { 
         mMediaPlayer.start(); 
         audio2.setImageResource(R.drawable.ic_pause_circle_filled_black_48dp); 
         mMediaPlayer.setOnCompletionListener(mCompletionListener); 

        } 


       } 
      }); 

答えて

0

をこの簡単な手順に従って、別のトラックを再生するには:

if (mediaPlayer != null) { 
    if(mediaPlayer.isPlaying()){ 
    mediaPlayer.stop(); 
    mediaPlayer.reset() 
    mediaPlayer.setDataSource(new music to play); 
    mediaPlayer.prepare(); 
    } 
} 

を次にonPrepared()mediaPlayer.start()を呼び出すここで

は、私はそれがこれまでの仕事を得ることができたコードがあります方法

+0

ありがとうございました –

関連する問題