2

サウンドプールでマルチタッチするには? 私は3ボタンです。タッチボタンを指でスライドすると、ピアノの音のように?この私のコード:

sp = new SoundPool (5, AudioManager.STREAM_MUSIC, 0);
player1 = sp.load(this, R.raw.ndang, 1);
player2 = sp.load(this, R.raw.nding, 1);
player3 = sp.load(this, R.raw.ndung, 1);

ndang = (ImageButton) this.findViewById(R.id.ndang);
ndang.setOnClickListener(new OnClickListener() {
    public void onClick(View arg0) {
        // TODO Auto-generated method stub
        sp.play(player1, 1, 1, 0, 0, 1);
    }
});

ndang = (ImageButton) this.findViewById(R.id.ndang2);
ndang.setOnClickListener(new OnClickListener() {
    public void onClick(View arg0) {
        // TODO Auto-generated method stub
        sp.play(player1, 1, 1, 0, 0, 1);
    }
});

nding = (ImageButton) this.findViewById(R.id.nding);
nding.setOnClickListener(new OnClickListener() {
    public void onClick(View arg0) {
        // TODO Auto-generated method stub
        sp.play(player2, 1, 1, 0, 0, 1);
    }
});
4

2 に答える 2

2

これが役に立ちますように: http://www.martinhoeller.net/2012/01/13/developing-a-musical-instrument-app-for-android/

于 2012-08-09T09:46:36.470 に答える
1

View.OnTouchListenerピアノの以上を実装する必要があるのは、キーボード全体とオーバーライドを含むカスタム ビューを作成することonTouchEventです。これにより、コードを最小限に抑えながら、ピアノの複数のキーの押下とキーのスライドを検出できます。

編集:

public class PianoView extends View {
    @Override
    onTouchEvent(MotionEvent event) {
        //your code to find which key was pressed based on x,y touch
    }
}

また

public class PianoActivity extends Activity {
    @Override
    dispatchTouchEvent(MotionEvent event) {
        //your code to find which key was pressed based on x,y touch
    }
}
于 2012-08-09T04:14:08.627 に答える