2015-07-25 2 views
0

То, что я пытаюсь выполнить, это остановка музыки, а затем, когда я снова нажимаю кнопку воспроизведения, медиаплеер будет воспроизводить ее. Но проблема, с которой я сталкиваюсь сейчас, - это после того, как я нажал кнопку остановки, я не могу снова воспроизвести музыку. Вот мой код:Остановка и воспроизведение аудиофайла

Button play,pause,stop; 

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

    play = (Button) findViewById(R.id.play); 
    pause = (Button) findViewById(R.id.pause); 
    stop = (Button) findViewById(R.id.stop); 

    final MediaPlayer sound = MediaPlayer.create(Audio_BeginAgain.this, R.raw.beginagain); 
    final MediaPlayer mp = new MediaPlayer(); 

    play.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      sound.start(); 
     } 
    }); 

    pause.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      sound.pause(); 
     } 
    }); 

    stop.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      sound.stop(); 
     } 
    }); 



} 
+0

вам нужно снова инициализировать MediaPlayer после кнопки остановки мыши. –

ответ

0

Это именно то, что сказал Md Абдул Гафур ..

Каждый раз, когда вы хотите повторно играть MediaPlayer вы должны инициализировать его новый с create().

Посмотрите на этот код:

public class PlayaudioActivity extends Activity { 

    private MediaPlayer mp; 

    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     Button b = (Button) findViewById(R.id.button1); 
     Button b2 = (Button) findViewById(R.id.button2); 
     final TextView t = (TextView) findViewById(R.id.textView1); 

     b.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       stopPlaying(); 
       mp = MediaPlayer.create(PlayaudioActivity.this, R.raw.far); 
       mp.start(); 
      } 

     }); 

     b2.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       stopPlaying(); 
       mp = MediaPlayer.create(PlayaudioActivity.this, R.raw.beet); 
       mp.start(); 
      } 
     }); 
    } 

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

Код скопирован из: Android MediaPlayer Stop and Play

Смежные вопросы