Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/210.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 安卓播放音效。_Java_Android_Audio - Fatal编程技术网

Java 安卓播放音效。

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

我在安卓系统中播放声音时遇到问题

我的第一次尝试都是在我的onButtonClick函数中进行的,该函数在大约20次点击中运行得非常好。然后声音停止了。我相信它使用了整个android的声音池,因为我所有的其他应用程序都停止了声音

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 !");
        }
    }
}