i having problem (i think) overlapping threads playing music in android mp3 player. have class songlist.java lists , plays music when item clicked , artistlist.java intents songlist play songs specific artist. 2 or more songs play @ same time if not in same activity.
how tell playsong method stop threads recent one?
you should have 1 single thread or service doing playback. songlist
, artistlist
should not start new service. rather should have playbackservice
can pass songlist
or artistlist
parameter / argument. if doing so, should have 1 single thread doing playback , never run kind of trouble.
have here: http://developer.android.com/guide/topics/media/mediaplayer.html#mpandservices
they implement service
uses build in mediaplayer
audio playback. next can bind musicplaybackservice
activity.
here introduction: http://developer.android.com/guide/components/bound-services.html
you can specify methods activity can invoke on service of binder
. provide method playsongs(songlist songs)
or playartists(artistlist list)
invoked activity (i.e. clicking on button). since service runs playback (by using mediaplayer
) service responsible threading , playback. if call playsongs(songlist songs)
of service, service should stop mediaplayer
, restart mediaplayer
desired music file (provided songlist
). approach musicplaybackservice
manages playback , guarantees 1 music file played simultaneously.