我的应用程序中有一个按钮,每次单击它时都会发出声音。问题是只有当我等到第一个声音结束时它才会播放。无论重复单击按钮的速度有多快,我都需要它来播放它。我正在使用的文件是
.mp3
,位于我的 Android Studio 项目中的 res\raw
文件夹中。
我将其初始化为:
MediaPlayer player = MediaPlayer.create(activity, R.raw.sound);
我的按钮点击初始代码很简单
player.start();
尝试使用以下功能,但遇到了同样的问题:
if (player.isPlaying()) {
player.stop();
}
player.start();
if (player.isPlaying()) {
player.pause();
player.restart();
}
player.start();
if (player.isPlaying()) {
player.restart();
}
player.start();
使用
player.prepare()
或 player.prepareAsync()
会导致 java.lang.IllegalStateException
错误,可能是因为我使用的初始化已经在幕后调用 prepare()
。
如何实现函数调用时立即发出声音?不一定要使用
MediaPlayer
。感谢您的帮助。
停止后您还必须释放播放器:
...
player.stop();
player.release();
...