Próbuję użyć klasy Android Media Player, aby odtwarzać dźwięki.Nie można uruchomić Android MediaPlayer onCompletion na ogień
Oto kod
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();
Ten kod działa w służbie, ale z jakiegoś powodu dźwięk odgrywa ok, ale nic umieszczane w onCompletion nie wydają się ognia. Dostaję wiadomość w logcat, że mediaplayer nie został zwolniony. Brakuje mi tego, co mam w tym złego.
Używam tego testowania na romie z galaxy nexus 4.0.4.
Zauważyłem również, że dźwięk może zostać przycięty na końcu.
Przypuszczam, że "wideo" jest instancją MediaPlayera? i że masz "implementację MediaPlayer.OnCompletionListener" w swojej klasie? Próbowałem również tej metody, ale nie działa. – Andrew
@Andrew Jak to się zgadza, jeśli to nie działa? Czy sprawiłeś, że to zadziałało? Jeśli tak, w jaki sposób? – hendrix
@smitalm wywołaj start() zanim ustawisz swojego słuchacza. – ajacian81