Cambiar el texto y la acción del botón – desarrollo de Android

Tengo problemas para descubrir cómo cambiar el texto y la acción de un botón. Lo que quiero hacer es tener un botón con el texto “reproducir” y cuando se haga clic en él reproducirá una canción y cambiará el texto a “pausa”. luego, cuando vuelva a hacer clic, se pausará la canción y se cambiará el texto a “reproducir”.

Sé cómo usar el reproductor multimedia (la encoding) y simplemente no sé cómo codificar el botón de esa manera:

hasta ahora tengo:

final Button testButton = (Button) findViewById(R.id.button1); testButton.setText("Play"); testButton.setOnClickListener( new View.OnClickListener() { @Override public void onClick (View v) { mPlayer.start(); testButton.setText("Pause"); 

Puedes usar setTag. Entonces, tu código se verá así,

 final Button testButton = (Button) findViewById(R.id.button1); testButton.setTag(1); testButton.setText("Play"); testButton.setOnClickListener( new View.OnClickListener() { @Override public void onClick (View v) { final int status =(Integer) v.getTag(); if(status == 1) { mPlayer.start(); testButton.setText("Pause"); v.setTag(0); //pause } else { testButton.setText("Play"); v.setTag(1); //pause } } }); 

Acerca de setTag

 private bool isPlaying=false; final Button testButton = (Button) findViewById(R.id.button1); testButton.setText("Play"); testButton.setOnClickListener( new View.OnClickListener() { @Override public void onClick (View v) { if(!isPlaying){ mPlayer.start(); testButton.setText("Pause"); isPlaying=true; }else{ mPlayer.stop(); testButton.setText("Play"); isPlaying=false; } 

Creo que tienes la idea. Sin embargo, no estoy seguro acerca de los estados de MediaPlayer.