With option 2, did you try using a setOnCompletionListener() with a
bingSound.stop() and bingSound.release()? This cleaning up ought to
prevent your system from filling up with MediaPlayer remnants - unless
of course you make so many calls to bingSound.start() per unit of time
that the system has no chance (on average) to finish playing one
bingSound before the next bingSound request already comes in. This
approach works for me.

Regards

On Oct 28, 10:01 pm, tobias429 <[EMAIL PROTECTED]> wrote:
> I am looking for a solution to play sounds multiple times in an
> application. In the application, as soon as a user performs operation
> A, the application shall respond with a *bing* sound. Performing
> operation B shall produce a *bong*. That means during the application
> life cycle, both sounds will potentially be played several dozen
> times. I have tried three different ways to achieve this. None of them
> seems to work:
>
> For all options, I have added 2 wav files, one for *bing* and one for
> *bong* in the application's Resource Package.
>
> Option 1:
> =======
> For both wav files, I am opening a MediaPlayer via e.g.
> bingSound=MediaPlayer.create(context, resid). In the application,
> whenever a sound shall be played, I call bingSound.start().
>
> Result:
> This works fine the first time. If I call bingSound.start() a second
> time no sound plays, and I get an exception that I called start() on a
> MediaPlayer instance in the wrong state.
>
> Option 2:
> =======
> Whenever the application shall play a sound, I create a new
> MediaPlayer from scratch via e.g.
> bingSound=MediaPlayer.create(context, resid); bingSound.start()
>
> Result:
> This works fine a number of times, until appearantly the maximum
> number of MediaPlayers is reached, and the application simply halts.
>
> Option 3:
> =======
> I create a new MediaPlayer via MediaPlayer.create(context, resid). I
> set looping to true. When the application shall play the sound, I call
> bingSound.start(). When the sound shall stop, I call
> bingSound.seekTo(0), followed by bingSound.pause().
>
> Result:
> This works fine for looping sounds. For the classical *bing* sound
> that shall only be played once and does not loop, it is next to
> impossible to time the calls in a way that the sound is only played
> once.
>
> Question
> =======
> Is there any possible approach to play the same, non looping sound
> several dozen times in an application?
>
> Thanks for any help!
>
> Tobias
--~--~---------~--~----~------------~-------~--~----~
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