In meinem Projekt spiele ich Musikdateien im Android Media Player mit dem folgenden Code ab
MediaPlayer mPlayer = MediaPlayer.create(MyActivity.this, R.raw.myfile);
mPlayer.start();
das Obige ist im Ein-Klick der Wiedergabetaste codiert. Ich möchte die Wiedergabe unterbrechen, indem Sie erneut auf dieselbe Schaltfläche klicken.
Sie können die Unterbrechung einfach mit if-check erledigen. Versuche dies:
if(mPlayer.isPlaying()){
mPlayer.pause();
} else {
mPlayer.start();
}
Bitte versuchen Sie dies ::
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;
}
}
});
Klicken Sie in der Schaltfläche auf mediaPlayer.isPlaying()
. Dies gibt den Wert true zurück, wenn der Media Player andernfalls false spielt.
Mit diesem Flag-Wert können Sie also eine if-Anweisung abgeben und wie folgt zum Abspielen oder Anhalten wechseln.
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
if (mediaplayer.isPlaying()) {
mediaplayer.pause();
} else {
mediaplayer.start();
}
}
});
Der folgende Code kümmert sich um das Klick/Ereignis der Play/Pause-Taste sowie die Vorwärts- und Rückwärts-Tasten für die Suche nach Vorwärts- und Rückwärtssuche auf der bereitgestellten Suchleiste (die mit dem Medientrack synchronisiert ist). Derzeit spielt es nur EINEN Song. Sie können jedoch hinzufügen. Dies ist mein erster Mediaplayer, der mediaplayer class
verwendet, daher könnte es sein, dass er etwas primitiv ist. Bei Bedarf können Sie jedoch auch die VideoView
-Beispiele überprüfen. Mit VideoView
ist es offensichtlich einfacher, da die Standard-Media-Konsole bereits in Form von vordefinierten Widgets vorhanden ist. Dies macht das Entwerfen des Players wesentlich einfacher.
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);
}
}
});
öffentliche Klasse MainActivity erweitert AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Der Song wurde zuvor im Raw-Ordner gespeichert. Der Name des Songs lautet mylife (es ist eine MP3-Datei) 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();
}
});
}
}
Um die Mediaplayer
anzuhalten:
Mediaplayer.pause();
length = Mediaplayer.getCurrentPosition();
und für die Wiederaufnahme des Spielers von der Position, an der er kürzlich aufgehört hat, geschieht Folgendes:
Mediaplayer.seekTo(length);
Mediaplayer.start();