2012-02-27 21 views
17

Nel mio progetto, sto giocando file musicali nel lettore multimediale Android utilizzando il seguente codicegiocare Android Media Player/pulsante di pausa

MediaPlayer mPlayer = MediaPlayer.create(MyActivity.this, R.raw.myfile); 
mPlayer.start(); 

quanto sopra è codificato nel onclick del pulsante di riproduzione. Voglio mettere in pausa la riproduzione facendo nuovamente clic sullo stesso pulsante.ie) pulsante singolo per riproduzione/pausa. Come devo fare questo.

risposta

41

È possibile utilizzare un semplice if-check per gestire la pausa. Prova questo:

if(mPlayer.isPlaying()){ 
    mPlayer.pause(); 
} else { 
    mPlayer.start(); 
} 
8

Si prega di provare questo ::

final Button bPlay = (Button) findViewById(R.id.bPlay); 
MediaPlayer song1 = MediaPlayer.create(tutorialFour.this, R.raw.fluet); 
Button bStop = (Button) findViewById(R.id.bStop); 
bPlay.setWidth(10); 

song1.setOnCompletionListener(new OnCompletionListener() { 

     public void onCompletion(MediaPlayer mp) { 

      bPlay.setText("Play"); 


     } 
    }); 

bPlay.setOnClickListener(new View.OnClickListener() { 

     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      b = true; 

      if (bPlay.getText().equals("Play") && b == true) { 

       song1.start(); 

       bPlay.setText("Pause"); 
       b = false; 
      } else if (bPlay.getText().equals("Pause")) { 
       x = song1.getCurrentPosition(); 
       song1.pause(); 
       bPlay.setText("Resume"); 
       Log.v("log", "" + x); 
       b = false; 
      } else if (bPlay.getText().equals("Resume") && b == true) { 
       song1.seekTo(x); 
       song1.start(); 
       bPlay.setText("Pause"); 
       b = false; 
      } 


     } 

    }); 
5

All'interno del controllo pulsante di scatto per mediaPlayer.isPlaying(). Ciò restituirà true se il lettore multimediale sta riproducendo altrimenti false.

Quindi, ora con questo, valore del flag è possibile effettuare un'istruzione if e passare per riprodurre o mettere in pausa come questo,

button.setOnClickListener(new View.OnClickListener() { 

     public void onClick(View view) { 

      if (mediaplayer.isPlaying()) { 
       mediaplayer.pause(); 
      } else { 
       mediaplayer.start(); 
      } 
     } 
    }); 
3

Di seguito il codice si prende cura della vostra play/pausa evento click del pulsante con avanti e indietro pulsanti per la ricerca in avanti e indietro sulla barra di ricerca fornita (che è sincronizzata con la traccia multimediale). Attualmente suona solo UNA canzone. Tuttavia, puoi aggiungerlo. Questo è il mio primo lettore multimediale che utilizza mediaplayer class, quindi potresti trovarlo un po 'primitivo. Tuttavia, se ti serve, puoi anche dare un'occhiata agli esempi VideoView. È apparentemente più semplice con VideoView dato che la console multimediale standard è già presente sotto forma di widget predefiniti. in modo che il design del giocatore sia molto più semplice.

package in.org.Test; 

import android.app.Activity; 
import android.media.MediaPlayer; 

import android.os.Bundle; 

import android.view.View; 
import android.view.View.OnClickListener; 

import android.widget.ImageButton; 

import android.widget.ProgressBar; 
import android.widget.SeekBar; 

import android.widget.Toast; 

public class Test12Activity extends Activity implements OnClickListener,Runnable { 

    private static final String isPlaying = "Media is Playing"; 
    private static final String notPlaying = "Media has stopped Playing"; 

    private SeekBar seek; 

    MediaPlayer player = new MediaPlayer(); 
    private ImageButton plus,minus; 

    ImageButton im; 

    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     plus = (ImageButton) findViewById(R.id.imageButton2); 
     minus = (ImageButton) findViewById(R.id.imageButton3); 


     player = MediaPlayer.create(this, R.raw.sound2); 


     player.setLooping(false); 
     im = (ImageButton) this.findViewById(R.id.imageButton1); 


     seek = (SeekBar) findViewById(R.id.seekBar1); 
     seek.setVisibility(ProgressBar.VISIBLE); 
     seek.setProgress(0); 
     seek.setMax(player.getDuration()); 
     new Thread(this).start(); 


     im.setOnClickListener(this); 
     player.start(); 

     Toast.makeText(this, isPlaying, Toast.LENGTH_LONG).show(); 


     plus.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View v) { int cu = player.getCurrentPosition(); player.seekTo(cu-5000); }}); 
     minus.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View v) {int cu = player.getCurrentPosition(); player.seekTo(cu+5000);}}); 


    } 


    @Override 
    public void onClick(View arg0) { 
     if (arg0.getId() == R.id.imageButton1) { 
     if(player.isPlaying()) { 
     player.pause(); 

     Toast.makeText(this, notPlaying, Toast.LENGTH_LONG).show(); 
     ImageButton img1=(ImageButton) this.findViewById(R.id.imageButton1); 

     img1.setImageResource(R.drawable.play); 

     } 
     else 
     { 
      player.start(); 
      Toast.makeText(this, isPlaying, Toast.LENGTH_LONG).show(); 

      ImageButton img1=(ImageButton) this.findViewById(R.id.imageButton1); 
      img1.setImageResource(R.drawable.pause); 
     } 
     } 
     } 

    @Override 
    public void run() { 
     int currentPosition= 0; String s; 
     int total = player.getDuration(); 
     while (player!=null && currentPosition<total) { 
      try { 
       Thread.sleep(1000); 
       currentPosition= player.getCurrentPosition(); 
      } catch (InterruptedException e) { 
       return; 
      } catch (Exception e) { 
       return; 
      }    

      seek.setProgress(currentPosition); 


     } 


    } 
} 
1
MediaPlayer mpE = MediaPlayer.create(GuitarTuner.this, R.raw.test2); 

    play.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      if (mpE.isPlaying()) { 
       mpE.pause(); 
       play.setBackgroundResource(R.drawable.play); 
      } else { 

       mpE.start(); 
       play.setBackgroundResource(R.drawable.pause); 
      } 

     } 
    }); 
0

per sospendere l'attività Mediaplayer:

Mediaplayer.pause(); 
length = Mediaplayer.getCurrentPosition(); 

e per riprendere il giocatore dalla posizione in cui si è fermato ultimamente è fatto da:

Mediaplayer.seekTo(length); 
Mediaplayer.start(); 
0

public class MainActivity estende AppCompatActivity {

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

// il brano è stato precedentemente salvato nella cartella raw. Il nome della canzone è mylife (è un file mp3) final MediaPlayer mMediaPlayer = MediaPlayer.create (MainActivity.this, R.raw.mylife);

//  Play song 
    Button playButton = (Button) findViewById(R.id.play); 
    playButton.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View view) { 
      mMediaPlayer.start(); // no need to call prepare(); create() does that for you 
     } 
    }); 
    //  Pause song 
    Button pauseButton = (Button) findViewById(R.id.pause); 
    pauseButton.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View view) { 
      mMediaPlayer.pause(); 
     } 
    }); 

    //  Stop song - when you stop a song, you can't play it again. First you need to prepare it. 

    Button stopButton = (Button) findViewById(R.id.stop); 
    stopButton.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View view) { 
      mMediaPlayer.stop(); 
      mMediaPlayer.prepareAsync(); 
     } 
    }); 

} 

}

+1

prega di non basta discarica codice ... spiegare la tua risposta ad almeno un po '. E prendi il [tour] –