java - 如何在自定义键盘中播放声音

标签 java android audio

我最近制作了自己的键盘,该键盘始终显示给用户。 我还发现了如何在按下某个键时播放声音,但如果我按下一个键然后立即按下另一个键,则仅播放第一个声音。 有什么方法可以让我每次按下一个键时都播放声音,即使它们之间有 0.1 毫秒? 这是我的代码:

 final MediaPlayer mp = MediaPlayer.create(this, R.raw.sn_tecla);
 final MediaPlayer mpspc = MediaPlayer.create(this, R.raw.sn_spc);
    texto1.setTypeface(fuente);


    //This is for each key.
    btn1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            mp.start();
            texto1.setText(texto1.getText() + "1");

        }
    });

提前谢谢您。

最佳答案

使用声音池 http://developer.android.com/reference/android/media/SoundPool.html

SoundPool sp = new SoundPool(5, AudioManager.STREAM_MUSIC, 0);
/** soundId for Later handling of sound pool **/
int soundId = sp.load(MainActivity.this, R.raw.windows_8_notify, 1); // in 2nd param u    have to pass your desire ringtone

sp.play(soundId, 1, 1, 0, 0, 1);

关于java - 如何在自定义键盘中播放声音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30617063/

相关文章:

algorithm - 声谱图

java - 选举程序中的 ArrayIndexOutOfBoundsException

java - Spring mongo 存储库切片

java - 实现图像按钮后相机不再工作 - Libgdx

Android编译慢(使用Eclipse)

c# - 连接到 SocketVoiceChannel (discord.NET)

java - 数据库查询以获取范围内的记录

android - 如何在 Java 中以编程方式禁用有线耳机

android - Pusher Java 客户端 : Failed to subscribe to a presence channel as well as a private channel at a time

audio - 如何使用 portaudio 和 sndfile 在 Go 中播放 wav 文件