android - 我如何添加一个简单的音池?

标签 android onclicklistener soundpool

嗨,我一直在为我的自闭症姐姐开发一个应用程序,但在尝试创建一个按钮播放声音 Activity 时遇到了困难,我已经阅读了很多教程,但出于某种原因无法理解它,我已经学会了MediaPlayer 和 soundPool 之间的区别,我想我宁愿使用后者我的文件是 res/raw 格式,并且是 .ogg 格式(已阅读 .wav 是必需的,但还没有足够的时间来测试它。) 因此,例如,如果我有一只猫,三个按钮组成了猫的名字,当你按下其中一个时,它会大声说出这封信我在 xml 中创建了布局,并且尝试过几次但都失败了,主要是考虑 setOnClickListeners,因为结果我几乎回到了我正在阅读本教程的第一个广场 http://www.techrepublic.com/blog/app-builder/getting-your-feet-wet-in-androids-soundpool/877但它到处都奇怪地分解,使初学者难以解释?有人可以帮忙吗?

最佳答案

试试这个

在你的 onCreate 之前添加这个

SoundPool sp;
int yourSound = 0;

这在你的 onCreate

 sp = new SoundPool(5, AudioManager.STREAM_MUSIC, 0);
 yourSound = sp.load(this, R.raw.whatEverTheNameOfYourSound, 1);

然后将其添加到您的 XML 按钮中

android:onClick="playSound"

最后将此方法添加到您的 Activity 中

 public void playSound(View v){
    if(yourSound != 0)
        sp.play(yourSound, 1, 1, 0,0, 1);
}

不要忘记将声音文件添加到原始文件夹中。希望对您有所帮助。

sp.play(yourSound, 1, 1, 0,0, 1); 表示 sp.play(int soundID, float leftVolume, float rightVolume, int priority, int loop, float rate); 可以看到here .

关于android - 我如何添加一个简单的音池?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19391974/

相关文章:

android - 从类加载器启动 Activity

javascript - AddEventListener 在分配时自动触发

android - "context"到底是什么意思?对于 soundPool.load int load(Context context, int resId, int priority)

java - 如何显示 EditText 中的文本?

java - Android/Apache HTTPGET 将不起作用,但在浏览器中它可以

java - Android 无法解析 OnClickListener

Android:onClick 图像使 Textview 不可见

android - 播放特定时间的音频文件

android - 更改声音文件的音调并保存到mp3文件

java - 从 InputStream JAVA 读取不同的输入