Sto provando a utilizzare la classe MediaPlayer di Android per riprodurre alcuni suoni.Impossibile ottenere Android MediaPlayer onCompletion per attivare
Ecco il codice
MediaPlayer mp = new MediaPlayer();
mp.setDataSource(context, Uri.parse(soundUrl));
mp.setAudioStreamType(AudioManager.STREAM_MUSIC);
mp.setLooping(false);
mp.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
Log.i(LOGTAG, "onComplete hit");
mp.stop();
mp.release();
}
});
mp.prepare();
mp.start();
Questo codice viene eseguito in un servizio, ma per qualche motivo il suono gioca ok, ma niente inserito nel onCompletion non sembra al fuoco. Poi ricevo un messaggio nel logcat che il mediaplayer non è stato rilasciato. Sono in perdita per quello che ho sbagliato in questo.
Sto eseguendo questo test su una rom di galassia nexus 4.0.4.
Ho anche notato che il suono può essere tagliato alla fine.
Immagino che "video" sia un'istanza di MediaPlayer? e che hai un "implementa MediaPlayer.OnCompletionListener" nella tua classe? Ho provato anche questo metodo ma non ha funzionato. – Andrew
@Andrew Come è accettata la risposta, se non ha funzionato? L'hai fatto funzionare? Se sì, come? – hendrix
@smitalm call start() prima di impostare il listener. – ajacian81