2016-07-27 1 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(); 
    } 
} 

Затем вызовите mediaPlayer.start() в onPrepared() метод

+0

Спасибо, что помогли –