There must be something crufty in your code.  I am doing this
currently in my game and it is working on all API versions (3+).

Post your code (both the "play" code and the "stop" code).

This is what I do (summarized):

SoundPool pool = ...
boolean loop = ...

int streamId = pool.play(soundId, 1.0f, 1.0f, 1, ( loop ) ? -1 : 0,
1.0f);

...

if(streamId != 0){
        pool.stop(streamId);
        streamId = 0;
}

On Sep 22, 5:55 pm, Clankrieger <tob...@googlemail.com> wrote:
> While this thread is rather old, I have a similar issue - while using
> the soundpool with the correct streamIDs.
>
> There is a looping sound being started, remembering its stream id. But
> when I try to stop it like this:
>
> SoundPool.stop(mId);
>
> nothing happens... the sound simply keeps looping. This happens on
> API3, API4 and API7... The only way to stop the sounds is by releasing
> the soundpool instance - but this way, I have to reload all pre-cached
> data again.
>
> On Aug 29, 9:16 am, Jason <jason.poli...@gmail.com> wrote:
>
>
>
> > I use the pause() method inSoundPool... implemented since API level 1
>
> >http://developer.android.com/reference/android/media/SoundPool.html#p...)
>
> > The streamID(int) is obtained when you play the sound:
>
> >http://developer.android.com/reference/android/media/SoundPool.html#p...,
> > float, float, int, int, float)
>
> > "Returns non-zero streamID if successful, zero if failed"
>
> > Retain this streamID in your reference the sound, then you can pause
> > it using the pause/resume methods.
>
> > Personally I create a wrapper object (I call a Sound) which exposes
> > simple methods like play(), pause(),stop() etc and the internals of
> > streamID etc are handled in this class.  That way I can swap between
> > using theSoundPooland MediaPlayer but still have the same "Sound"
> > class exposed to the app.
>
> > On Aug 29, 8:32 am, BryBam <bry...@gmail.com> wrote:
>
> > > Quick note: I'm using theSoundPoolclass
>
> > >http://developer.android.com/reference/android/media/SoundPool.html
>
> > > What I have here is a simple button that plays a looped sound while
> > > it's pressed. It works great. However, sounds.autoPause(); wasn't
> > > introduced until API 8 and I really need something that is cupcake
> > > compatible (API 3) So i was going through the dev reference site
> > > filtered by API 3 stuff and i saw pause so i figured i'd try
> > > sounds.pause(sound); but it doesn'tstopthe sound when i release it.
> > > (Maybe i'm just using it wrong?) Does anyone know of a cupcake
> > > friendly way tostopthis sound? thanks!
>
> > > edit: also tried sounds.stop(sound); that didn't work either.
>
> > > The Code:
>
> > > My onCreate:
>
> > > sounds = newSoundPool(5, AudioManager.STREAM_MUSIC, 0);
> > > sound = sounds.load(this.getApplicationContext(), R.raw.red_long_one,
> > > 1);
> > > Then here's my touch event
>
> > > @Override public boolean onTouch(View arg0, MotionEvent event) {
>
> > >             switch (event.getAction() ) {
> > >             case MotionEvent.ACTION_DOWN:
> > >                 System.out.println("touch");
> > >                 sounds.play(sound, 1, 1, 1, -1, 1);
> > >                 break;
> > >             case MotionEvent.ACTION_UP:
> > >                 System.out.println("up");
> > >                 //autoPause does not work on anything lower than sdk8
> > >                 sounds.autoPause();
> > >                 break;
> > >             }
>
> > >             return false;
> > >         }
> > > I don't understand why sounds.stop(sound); doesn't seem to work, that
> > > seems to but what any article i read recommends to do
>
> > > I think it's worth noting that if i use sounds.stop(sound); it works
> > > ONE time then after that it won'tstopafter i let go. but the first
> > > press and release it works as intended.
>
> > > Now, I know on the andoird site it says streamID and not soundID but i
> > > have no idea how to get the streamID

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