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
-~----------~----~----~----~------~----~------~--~---

Reply via email to