【问题标题】:How to play a short sound on button click using soundPool?如何使用 soundPool 在单击按钮时播放短声?
【发布时间】:2012-12-30 10:01:50
【问题描述】:

我有 5 个按钮。每次单击按钮时,我都想播放短声。每个按钮都会从我的原始文件夹中播放不同的声音。目前,我可以从第一个按钮播放声音,但是如何在不创建大量代码的情况下从另一个按钮分配声音?请。帮助。

这是我目前的代码:

public class Alphabet extends Activity {
private Button a, b, c, d, e;
    private SoundPool spool;
    private int soundID;


@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.alphabet);

    Button a = (Button) findViewById(R.id.a);
    Button b = (Button) findViewById(R.id.b);
    Button c = (Button) findViewById(R.id.c);
    Button d = (Button) findViewById(R.id.d);
    Button e = (Button) findViewById(R.id.e);



    a.setOnClickListener(new OnClickListener() 
    { 
          public void onClick(View v) { 
          Sound(); 
          } 
     });

    b.setOnClickListener(new OnClickListener() 
    { 
          public void onClick(View v) { 
          Sound(); 
          } 
     });

    c.setOnClickListener(new OnClickListener() 
    { 
          public void onClick(View v) { 
          Sound(); 
          } 
     });

    d.setOnClickListener(new OnClickListener() 
    { 
          public void onClick(View v) { 
          Sound(); 
          } 
     });

    e.setOnClickListener(new OnClickListener() 
    { 
          public void onClick(View v) { 
          Sound(); 
          } 
     });

    this.setVolumeControlStream(AudioManager.STREAM_MUSIC);
    spool = new SoundPool(10, AudioManager.STREAM_MUSIC, 0);
    soundID = spool.load(this, R.raw.a, 1);


}
public void Sound(){
    AudioManager audioManager = (AudioManager) getSystemService(AUDIO_SERVICE);
    float volume = (float) audioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
    android.util.Log.v("SOUND","["+volume+"]["+spool.play(soundID, volume, volume, 1, 0, 1f)+"]");
};

}

【问题讨论】:

    标签: android button soundpool


    【解决方案1】:

    例如,您可以将参数设置为您的 Sound() 方法,例如

        Sound(int soundID){
    
          spool.load(this, soundID)
          AudioManager audioManager = (AudioManager) getSystemService(AUDIO_SERVICE);
          float volume = (float) audioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
        }
    

    并将您的声音从您的 onClick 内的原始文件夹放入方法中:

        public void onClick(View v) { 
          Sound(R.raw.a,1); //put the sounds as parameter
          } 
    

    【讨论】:

    • 嗯....是的,但我猜你不是。此解决方案是一个简短的解决方案,无需编写太多代码。这就是他想要的......
    猜你喜欢
    • 2015-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多