you need call mp.prepare before mp.start 在 2012-2-19 上午3:13,"Mark Turkel" <pbsdm...@gmail.com>写道: > > Here's code that I am using repeatedly in several apps... hope this > helps! :) > > final class PlaySound { > public static boolean playing=false; > > private static HashSet<MediaPlayer> mpSet = new > HashSet<MediaPlayer>(); > > static void play(Context context, int resId) { > playing=true; > MediaPlayer mp = MediaPlayer.create(context, resId); > mp.setOnCompletionListener(new > MediaPlayer.OnCompletionListener() { > @Override > public void onCompletion(MediaPlayer mp) { > mpSet.remove(mp); > mp.stop(); > mp.release(); > playing=false; > } > }); > mpSet.add(mp); > mp.start(); > } > > static void stop() { > for (MediaPlayer mp : mpSet) { > if (mp != null) { > mp.stop(); > mp.release(); > playing=false; > } > } > mpSet.clear(); > } > } > > -- > 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
-- 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