我的应用程序出现了一个奇怪的问题。 每次单击一个按钮,我都会调用一个方法来执行声音。
代码:
public static void executeSound(Context context) {
if (isSoundEnabled(context)) {
if (mediaPlayer == null) {
mediaPlayer = MediaPlayer.create(context, R.raw.button_click);
}
mediaPlayer.start();
}
}
如果用户在应用内启用了声音,则验证isSoundEnabled
功能。
每次点击按钮时都不会执行声音,但在点击其他按钮后,声音会一起执行。 碰巧我按下三个不同的按钮,只有当我第三次按下按钮时才会执行三个声音。如何立即执行声音? 我在棒棒糖设备上遇到这个问题(相同的代码在同一台设备上完全运行,但使用kitkat)
答案 0 :(得分:0)
将执行方法更改为此
public static void executeSound(Context context) {
if (isSoundEnabled(context)) {
mediaPlayer = new MediaPlayer();
mediaPlayer.setDataSource(mContext, audioUriPath);
mediaPlayer.prepare();
mediaPlayer.start();
mediaPlayer.setOnCompletionListener(new OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
// TODO Auto-generated method stub
mp.release();
}
});
}
}