【发布时间】:2012-03-21 20:31:52
【问题描述】:
我正在为设备开发一个简单的计算器,我正在使用媒体播放器在按下按钮时播放一些声音
media=MediaPlayer.create(this, R.raw.wipe);
media.start();
在一个重置按钮中,我正在释放它
media.release();
但在单击某个按钮后,它会停止播放任何声音。我该如何解决这个问题?
【问题讨论】:
我正在为设备开发一个简单的计算器,我正在使用媒体播放器在按下按钮时播放一些声音
media=MediaPlayer.create(this, R.raw.wipe);
media.start();
在一个重置按钮中,我正在释放它
media.release();
但在单击某个按钮后,它会停止播放任何声音。我该如何解决这个问题?
【问题讨论】:
MediaPlayer 在播放小音效时不是一个好选择,因为用户很快就会单击多个按钮,您必须为所有按钮创建一个 MP 对象这不会发生 同步。这就是为什么每次点击都听不到声音的原因。 选择 SoundPool 类,它允许您将较小的声音加载到内存中,并且您可以随时播放它们,而不会像在媒体播放器中那样有任何延迟。 http://developer.android.com/reference/android/media/SoundPool.html 这是一个很好的教程:http://www.anddev.org/using_soundpool_instead_of_mediaplayer-t3115.html
【讨论】:
试试这样,
MediaPlayer media=MediaPlayer.create(this, R.raw.wipe);
media.start();
在重置按钮上写如下:
media.release();
media.reset();
【讨论】:
我建议您始终在另一个线程中播放您的媒体。
【讨论】:
点击重置按钮时,也使用 media.reset();在 media.release() 之后;
【讨论】: