I can't commit to a date, but I can tell you that it will be addressed
in the next SDK release.

On Nov 10, 1:27 pm, Robert Green <[EMAIL PROTECTED]> wrote:
> Unfortunately it is the only suitable API for sounds in games at the
> moment.  I tried to use MediaPlayers for mine and the performance and
> player management was sub-par.  I had problems with it but after I
> switched to OGGs they seemed to go away.  I'm prepared to retrofit my
> games once the API is finalized but until then it's really the only
> way to handle multiple triggered sounds well.
>
> Dave - got an ETA on when that will be ready?  :)
>
> On Nov 10, 1:52 pm, Dave <[EMAIL PROTECTED]> wrote:
>
> > SoundPool is undocumented because it is not ready as a public API and
> > is subject to change. There are serious problems with it including the
> > likelihood that your application will deadlock if you attempt to use
> > it. When it is ready, we will publish the API documentation.
>
> > On Nov 9, 5:04 pm, g1bb <[EMAIL PROTECTED]> wrote:
>
> > > This worked great. Thank you very much. The lack of documentation on
> > > SoundPool is disturbting.
>
> > > On Nov 9, 2:10 pm, Robert Green <[EMAIL PROTECTED]> wrote:
>
> > > > Yeah there's something you need to know about SoundPool:  Init well
> > > > before playing - that is, you need to know way ahead of time what
> > > > sounds you will be using because it doesn't work well to play
> > > > immediately after initializing.  I think they attempt to initialize
> > > > asynchronously or something because I had problems when I tried to
> > > > load and play back to back like you're trying there.
>
> > > > When I use SoundPool, I load everything upon creation of the instance
> > > > of the game then trigger the plays whenever I need them.  Here's my
> > > > current code for SoundPoolSoundManager:
>
> > > > public class SoundPoolSoundManager implements SoundManager {
> > > >         private static final String TAG = "SoundPoolSoundManager";
>
> > > >         public static final int SOUND_1 = 1;
>
> > > >         private boolean enabled = true;
> > > >         private Context context;
> > > >         private SoundPool soundPool;
> > > >         private HashMap<Integer, Integer> soundPoolMap;
>
> > > >         public SoundPoolSoundManager(Context context) {
> > > >                 this.context = context;
> > > >         }
>
> > > >         public void reInit() {
> > > >                 init();
> > > >         }
>
> > > >         public void init() {
> > > >                 if (enabled) {
> > > >                         Log.d(TAG, "Initializing new SoundPool");
> > > >                         //re-init sound pool to work around bugs
> > > >                         release();
> > > >                         soundPool = new SoundPool(SOUNDPOOL_STREAMS,
> > > > AudioManager.STREAM_MUSIC, 100);
> > > >                         soundPoolMap = new HashMap<Integer, Integer>();
> > > >                         soundPoolMap.put(SOUND_1, 
> > > > soundPool.load(context, R.raw.sound1,
> > > > 1));
> > > >                         Log.d(TAG, "SoundPool initialized");
> > > >                 }
> > > >         }
>
> > > >         public void release() {
> > > >                 if (soundPool != null) {
> > > >                         Log.d(TAG, "Closing SoundPool");
> > > >                         soundPool.release();
> > > >                         soundPool = null;
> > > >                         Log.d(TAG, "SoundPool closed");
> > > >                         return;
> > > >                 }
> > > >         }
>
> > > >         public void playSound(int sound) {
> > > >                 if (soundPool != null) {
> > > >                         Log.d(TAG, "Playing Sound " + sound);
> > > >                         AudioManager mgr = (AudioManager)
> > > > context.getSystemService(Context.AUDIO_SERVICE);
> > > >                         int streamVolume = 
> > > > mgr.getStreamVolume(AudioManager.STREAM_MUSIC);
> > > >                         Integer soundId = soundPoolMap.get(sound);
> > > >                         if (soundId != null) {
> > > >                                 soundPool.play(soundPoolMap.get(sound), 
> > > > streamVolume,
> > > > streamVolume, 1, 0, 1f);
> > > >                         }
> > > >                 }
> > > >         }
>
> > > >         public void setEnabled(boolean enabled) {
> > > >                 this.enabled = enabled;
> > > >         }
>
> > > > }
>
> > > > On Nov 9, 4:28 am, g1bb <[EMAIL PROTECTED]> wrote:
>
> > > > > Hello,
>
> > > > > I posted this on the AndDev forums as well, and I'm somewhat of a
> > > > > novice to Java.
>
> > > > > I've tried the following code after seeing the snippet 
> > > > > athttp://www.anddev.org/using_soundpool_instead_of_mediaplayer-t3115.html,
> > > > > and I can't seem to get this to work. Here's what I have:
>
> > > > > public class OneShotAlarm extends BroadcastReceiver
> > > > > {
> > > > >      private SoundPool soundPool;
> > > > >       private HashMap<Integer, Integer> soundPoolMap;
>
> > > > >     @Override
> > > > >     public void onReceive(Context context, Intent intent)
> > > > >     {
> > > > >       soundPool = new SoundPool(4, AudioManager.STREAM_MUSIC, 100);
> > > > >          soundPoolMap = new HashMap<Integer, Integer>();
> > > > >          soundPoolMap.put(1, soundPool.load(context, R.raw.sound1,
> > > > > 1));
>
> > > > >         AudioManager mgr = (AudioManager)
> > > > > context.getSystemService(Context.AUDIO_SERVICE);
> > > > >         int streamVolume =
> > > > > mgr.getStreamVolume(AudioManager.STREAM_MUSIC);
> > > > >         soundPool.play(soundPoolMap.get(1), streamVolume,
> > > > > streamVolume, 1, 0, 1f);
> > > > >     }
>
> > > > > }
>
> > > > > You'll notice I replaced instaces of 'getContext()' with 'Context', as
> > > > > 'getContext()' doesn't seem to be available from where I have this
> > > > > code.
>
> > > > > Here is my LogCat that's being returned, and no sound is being played:
> > > > > 11-08 19:25:23.679: DEBUG/dalvikvm(1822): Trying to load lib /system/
> > > > > lib/libsoundpool.so 0x0
> > > > > 11-08 19:25:23.759: DEBUG/dalvikvm(1822): Added shared lib 
> > > > > /system/lib/
> > > > > libsoundpool.so 0x0
> > > > > 11-08 19:25:23.819: WARN/SoundPool(1822): sample 1 not READY
>
> > > > > Any ideas on this? I've been pulling my hair out all day messing with
> > > > > MediaPlayer, then I came across SoundPool and it looked like it would
> > > > > be a great alternative.
>
> > > > > Thanks in advance.
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to