MediaPlayer.isPlaying()
lässt nicht wissen, ob die MediaPlayer
gestoppt oder pausiert ist. Wie kann man wissen, ob es pausiert und nicht gestoppt ist?Android: Wie kann man wissen, ob der MediaPlayer pausiert ist?
Danke!
MediaPlayer.isPlaying()
lässt nicht wissen, ob die MediaPlayer
gestoppt oder pausiert ist. Wie kann man wissen, ob es pausiert und nicht gestoppt ist?Android: Wie kann man wissen, ob der MediaPlayer pausiert ist?
Danke!
Es gibt keine API, um zu überprüfen, ob MediaPlayer
pausiert ist oder nicht. Verwenden Sie also bitte eine beliebige boolesche Variable, um sie zu überprüfen und umzuschalten, wenn Sie mit einer beliebigen button
pausierten.
onClick(){
if(isPaused)
{
//resume media player
isPaused = false;
}else{
// pause it
isPaused = true;
}
}
Wenn es keine solche Methode ist, dann, wie Sie Wert von isPaused Variable gesetzt werden? – Kedarnath
isPaused =! IsPaused –
Als Ankit beantwortet es keine API, ob Media Player zu überprüfen ist, angehalten oder nicht, haben wir es programmatisch wie diese Sie
private boolean pause=true; //A Boolean variable to check your state declare it true or false here depends upon your requirement
Jetzt prüfen kann hier ein Verfahren machen zu überprüfen, ob, wann immer Sie wollen Spieler überprüfen ist Pause
public void checkplayer(MediaPlayer player){
if(isPause=true) //check your declared state if you set false or true here
Player.pause();
else if(isPause=false){
Player.play();
or
Player.stop();
}
ein Verfahren isPlaying() in Media Player ist die, wenn der Media Player überprüfen verwendet werden kann oder nicht spielen und dementsprechend können wir ein Flag gesetzt und arbeite daran. Derzeit gibt es keine API davon.
Eine Möglichkeit besteht darin, zu überprüfen, ob der Media Player nicht spielt (pausiert) und zu prüfen, ob er sich an einer anderen Position als der Startposition (1) befindet.
MediaPlayer mediaPlayer = new MediaPlayer();
Boolean isPaused = !mediaPlayer.isPlaying() && mediaPlayer.getCurrentPosition() > 1;
Docs sagen, dass getCurrentPosition "die aktuelle Position in Millisekunden" zurückgibt. Wenn Sie den mediaPlayer nie in Pause gesetzt haben, wird es eine riesige Zahl wie 1628054332 oder ähnlich (wahrscheinlich Systemzeit in Millis seit 1970). Um sich also um das erste Mal zu kümmern, wenn der Benutzer spielt (ohne vorher eine Pause zu machen), müssen Sie eine Art von Flagge einführen. –
definieren boolean
Variable namens playedAtLeastOnce
(oder was auch immer Sie wollen) dann auf true
wenn Ihr MediaPlayer
Objekt zumindest für eine Zeit gespielt wurde. Ein guter Platz, um es True zuzuweisen ist in onPrepared(MediaPlayer mp)
Methode von MediaPlayer.OnPreparedListener
implementierte Schnittstelle.
Dann, wenn MediaPlayer
nicht und playedAtLeastOnce
spielen ist true
, kann man sagen, dass MedaiPlayer
pausiert.
boolean playedAtLeastOnce;
@Override
public void onPrepared(MediaPlayer mp) {
mp.start();
playedAtLeastOnce = true;
}
public boolean isPaused() {
if (!mMediaPlayer.isPlaying && playedAtLeastOnce)
return true;
else
return false;
// or you can do like this
// return !mMediaPlayer.isPlaying && playedAtLeastOnce;
}
siehe [diese] (http://stackoverflow.com/a/6849205/2009591) – Naveen