1

私は5つのボタンを持っています。ボタンを押すたびに短い音を鳴らしたい。各ボタンは、生のフォルダーから異なるサウンドを再生します。現在、1 番目のボタンからサウンドを再生できますが、大量のコードを作成せずに別のボタンからサウンドを割り当てるにはどうすればよいですか? お願いします。ヘルプ。

これまでの私のコードは次のとおりです。

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

}

4

1 に答える 1

-1

たとえば、次のようにパラメータをSound()メソッドに設定できます

    Sound(int soundID){

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

onClick 内の raw フォルダーからサウンドをメソッドに入れます。

    public void onClick(View v) { 
      Sound(R.raw.a,1); //put the sounds as parameter
      } 
于 2012-12-30T10:28:07.127 に答える