Hey niko, when calling Stop() then SeekTo() then start(), my game is lagging very much.... seems this is not working fine too.... FPS of my game drops to 7 from 24 if i do this... :(
On Apr 27, 11:34 pm, niko20 <nikolatesl...@yahoo.com> wrote: > You have to call Stop() before you can call Seek(). Also you have lots > of MediaPlayers which is not a good idea. > > I would upgrade to 1.5 cupcake SDK and use the AudioTrack classes (or > soundpool maybe) > > -niko20 > > On Apr 27, 3:20 am, Sudha <sudhaker...@gmail.com> wrote: > > > Hi, > > > I have a requirement to play several sounds many times in my game so > > instead of creating the MediaPlayer again and again I have called > > mp.seekTo(0) in onCompletion(mp) so that it will restart. > > Sometimes the sound is not audible from the device when I call mp.start > > () after setting mp.seekTo(0); but the player calls onCompletion() > > without playing any sound, this is observed randomly on most of the > > sounds > > > FYI: > > > - My sounds are of short duration mostly less than a second. > > - I am using a separate MediaPlayer for each sound (as I need this) > > - There are almost 28 sounds in my game so i will be creating 28 > > MediaPlayers. > > - Below is the attached code for player > > > Also If I try to play many sounds one after the other in a short > > period of time i get an error saying "no more track names available". > > can u tell Why this is happening...? > > > check the below code: > > > public boolean isPlayingSound; //class member > > MediaPlayer mp = null; > > String last_req = ""; > > public void playSound(final String res) { > > if (isPlayingSound){ > > return; > > } > > try { > > > if (last_req.equals(res)) > > { > > System.out.println("starting again................: > > "+res); // > > Sudhaker > > mp.start(); > > isPlayingSound = true; > > return; > > } > > last_req = res; > > mp = new MediaPlayer(); > > > FileInputStream fIn = Utils.getContext().openFileInput(res); > > if (fIn != null) > > { > > //we tell the mediaplayer which file he needs to > > play. notice we > > don't tell him if this is a MIDI, WAV, MP3 or even AVI for that > > matter. > > //why? he is smart enough to recognize them!! we > > don't even have to > > use valid extensions like say .mid, .mp3, .wav!!! ... WOAH!! =D > > mp.setDataSource(fIn.getFD()); > > fIn.close(); > > } > > > mp.setOnPreparedListener(new > > MediaPlayer.OnPreparedListener() { > > public void onPrepared(MediaPlayer mp) > > { > > mp.start(); > > isPlayingSound = true; > > } > > }); > > > mp.setOnCompletionListener(new > > MediaPlayer.OnCompletionListener() { > > public void onCompletion(MediaPlayer mp) > > { > > System.out.println("sound playing finished > > : "+res + " and seek to > > start"); //Sudhaker > > //mp.release(); > > mp.seekTo(0); > > isPlayingSound = false; > > } > > }); > > > mp.setOnErrorListener(new > > MediaPlayer.OnErrorListener() { > > public boolean onError(MediaPlayer mp, int what, > > int extra) > > { > > mp.release(); > > mp = null; > > deleteSoundFile(res); > > isPlayingSound = false; > > last_req=""; > > return false; > > } > > }); > > > // mp.prepareAsync(); > > if (isLooping()) > > { > > mp.setLooping(true); > > } > > mp.prepare(); > > > } catch (Exception e) { > > mp.release(); > > deleteSoundFile(res); > > isPlayingSound = false; > > mp = null; > > new PlayerImpl(fileName,fileInputStream); > > last_req=""; > > playSound(fileName); > > } > > > } > > > please reply asap... --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers-unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -~----------~----~----~----~------~----~------~--~---