I use the pause() method in SoundPool... implemented since API level 1 http://developer.android.com/reference/android/media/SoundPool.html#pause(int)
The streamID(int) is obtained when you play the sound: http://developer.android.com/reference/android/media/SoundPool.html#play(int, 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 the SoundPool and MediaPlayer but still have the same "Sound" class exposed to the app. On Aug 29, 8:32 am, BryBam <[email protected]> wrote: > Quick note: I'm using the SoundPool class > > 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't stop the sound when i release it. > (Maybe i'm just using it wrong?) Does anyone know of a cupcake > friendly way to stop this sound? thanks! > > edit: also tried sounds.stop(sound); that didn't work either. > > The Code: > > My onCreate: > > sounds = new SoundPool(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't stop after 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 [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/android-developers?hl=en

