Java 安卓播放音效。
我在安卓系统中播放声音时遇到问题 我的第一次尝试都是在我的onButtonClick函数中进行的,该函数在大约20次点击中运行得非常好。然后声音停止了。我相信它使用了整个android的声音池,因为我所有的其他应用程序都停止了声音Java 安卓播放音效。,java,android,audio,Java,Android,Audio,我在安卓系统中播放声音时遇到问题 我的第一次尝试都是在我的onButtonClick函数中进行的,该函数在大约20次点击中运行得非常好。然后声音停止了。我相信它使用了整个android的声音池,因为我所有的其他应用程序都停止了声音 public void onButtonClick(View view) { MediaPlayer clickSound = MediaPlayer.create(this, R.raw.click); clickSound.start(); //... oth
public void onButtonClick(View view)
{
MediaPlayer clickSound = MediaPlayer.create(this, R.raw.click);
clickSound.start();
//... other onButtonCode
}
我已经对它做了一些修改,现在它是一个全局变量
MediaPlayer clickSound;
它在我的onCreate()方法中实例化。onbuttonClick现在有了clickSound.start()
但这不是我想的那样。声音似乎是随机的。有时会有点击。有时会没有声音。或者,有时声音在那里有一个小光点,并在声音完成之前结束。好的一面是,它似乎并没有完全填满声音池,所以我可以在测试时不断听到“一些”声音
我缺少什么使声音正常工作?
我试图添加一个
clickButton.stop()
,但这使我的声音根本不起作用,可能是因为它在明显之前就停止了 使用后应释放ressource
clickSound.release();
clickSound = null;
我建议如下: 在onResume中初始化播放机:
clickSound = MediaPlayer.create(this, R.raw.click);
在onPause中释放资源:
clickSound.release();
clickSound = null;
使用按钮播放声音:
clickSound.start();
改用
游戏:
private void playSpecSound(int resId)
{
if(soundPool != null)
{
if(0 == soundPool.play(resId, 1f, 1f, 0, 0, 1.0f))
{
Log.e(TAG, "Play specified sound failed !");
}
}
}
private void playSpecSound(int resId)
{
if(soundPool != null)
{
if(0 == soundPool.play(resId, 1f, 1f, 0, 0, 1.0f))
{
Log.e(TAG, "Play specified sound failed !");
}
}
}