Кнопка воспроизведения / паузы Android Media Player

В моем проекте я играю музыкальный файл в медиа-плеере Android, используя следующий код

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

Приведенное выше закодировано в onclick кнопки воспроизведения. Я хочу приостановить воспроизведение, нажав на ту же кнопку again.ie) одиночная кнопка для воспроизведения / паузы. Как я это сделаю.

Solutions Collecting From Web of "Кнопка воспроизведения / паузы Android Media Player"

Вы можете использовать простой if-check для обработки паузы. Попробуй это:

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

Пожалуйста, попробуйте следующее:

 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; } } }); 

Внутри кнопки нажмите кнопку check для mediaPlayer.isPlaying() . Это вернет true, если медиаплеер играет иначе false.

Итак, теперь с этим значением флага вы можете сделать оператор if и переключиться на воспроизведение или сделать паузу так,

 button.setOnClickListener(new View.OnClickListener() { public void onClick(View view) { if (mediaplayer.isPlaying()) { mediaplayer.pause(); } else { mediaplayer.start(); } } }); 

Ниже код заботится о событии нажатия кнопки воспроизведения / паузы, а также кнопки вперед и назад для прямого и обратного поиска на прилагаемой кнопке поиска (которая синхронизирована со звуковой дорожкой). В настоящее время он играет только одну песню. Однако вы можете добавить к этому. Это мой первый медиаплеер, использующий mediaplayer class , поэтому вы можете найти его немного примитивным. Однако, если вам нужно, вы также можете проверить примеры VideoView . Похоже, с VideoView проще, поскольку стандартная медиаконвейер уже присутствует в виде предопределенных виджетов. Так что сделать проектирование игрока намного проще.

 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); } } } 
  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); } } }); 

Для приостановки работы Mediaplayer :

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

И для возобновления игрока с позиции, где он остановился в последнее время, делается:

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

Открытый класс MainActivity расширяет AppCompatActivity {

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

// песня была ранее сохранена в исходной папке. Название песни – это моя жизнь (это 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(); } }); } 

}