Ich teste auf 2 Telefonen. In einem Gerät isPlaying() von mediaplayer immer falsch zurückgeben, auch wenn es spielt. aber in anderen Gerät (lg optimus gingerbread) isPlaying() gibt true ist es spielt sonst falsch zurück.
Kann mir jemand sagen, warum das so ist? Mein Code hängt von diesem isPlaying()-Teil ab und ich möchte, dass es auf allen Geräten funktioniert.
public void addSoundMedia(Context context, int resId){
MediaPlayer mp = MediaPlayer.create(context, resId);
mp.setVolume(1.0f, 1.0f);
try{
mPlayerList.add(mp);
}
catch(Exception e){}
}
public void playSoundMedia(int index){
try{
mPlayerList.get(index).start();
}
catch(Exception e){}
}
public MediaPlayer getPlayer(int index){
return mPlayerList.get(index);
}
Jetzt rufe ich an
mPlayer.getPlayer(currentPlayingPhraseIndex).isPlaying();
//which is now returning false. Previously i was returning true but now it always return false
Und ich habe auch das Objekt angepasst, Dies ist das Codeszenario jetzt:
int phraseIndexToBePlayed = getRandomInteger(0, numberOfPhrasesSelected-1, randomPhraseGen); //get random index from 0 to (size of arraylist where i added my media) -1
currentPlayingPhraseIndex = phraseIndexToBePlayed; //for later use in another function scope
mPlayer.playSoundMedia(phraseIndexToBePlayed);
Ich habe auch überprüft, ob beide Medien gleich sind.
mPlayer.getPlayer(currentPlayingPhraseIndex).equals(mPlayer.getPlayer(phraseIndexToBePlayed)); //it returns true so they are both same media
Danke.