package com.example.user.musicdokebi;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.media.SoundPool;
import android.view.KeyEvent;
import android.media.AudioManager;
import android.view.View;
public class recorder extends AppCompatActivity {
SoundPool pool = new SoundPool(10, AudioManager.STREAM_MUSIC, 0);
int recorder_do;
int recorder_le;
int recorder_mi;
int recorder_fa;
int recorder_sol;
int recorder_la;
int recorder_si;
int recorder_dohigh;
int recorder_lehigh;
int recorder_mihigh;
int recorder_fi;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_recorder);
recorder_do = pool.load(this, R.raw.recorder_do, 1);
recorder_le = pool.load(this, R.raw.recorder_le, 1);
recorder_mi = pool.load(this, R.raw.recorder_mi, 1);
recorder_fa = pool.load(this, R.raw.recorder_fa, 1);
recorder_sol = pool.load(this, R.raw.recorder_sol, 1);
recorder_la = pool.load(this, R.raw.recorder_la, 1);
recorder_si = pool.load(this, R.raw.recorder_si, 1);
recorder_dohigh = pool.load(this, R.raw.recorder_dohigh, 1);
recorder_lehigh = pool.load(this, R.raw.recorder_lehigh, 1);
recorder_mihigh = pool.load(this, R.raw.recorder_mihigh, 1);
recorder_fi = pool.load(this, R.raw.recorder_fi, 1);
}
public void button(View view) {
Intent intent = new Intent(this, MainActivity.class);
startActivity(intent);
this.finish();
}
public boolean recorderdo, recorderre, recordermi, recorderfa, recordersol, recorderla, recordersi, recorderdohigh;
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_W) {
recorderdo = true;
} else if (keyCode == KeyEvent.KEYCODE_A) {
recorderre = true;
} else if (keyCode == KeyEvent.KEYCODE_S) {
recordermi = true;
} else if (keyCode == KeyEvent.KEYCODE_D) {
recorderfa = true;
} else if (keyCode == KeyEvent.KEYCODE_F) {
recordersol = true;
} else if (keyCode == KeyEvent.KEYCODE_G) {
recorderla = true;
} else if (keyCode == KeyEvent.KEYCODE_E) {
recordersi = true;
} else if (keyCode == KeyEvent.KEYCODE_R) {
recorderdohigh = true;
}
if (recorderdo && recorderre && recordermi && recorderfa && recordersol && recorderla && recordersi && recorderdohigh) {
pool.play(recorder_do, 1, 1, 1, 0, 1);
}
if (recorderre && recordermi && recorderfa && recordersol && recorderla && recordersi && recorderdohigh) {
pool.play(recorder_le, 1, 1, 1, 0, 1);
}
if (recordermi && recorderfa && recordersol && recorderla && recordersi && recorderdohigh) {
pool.play(recorder_mi, 1, 1, 1, 0, 1);
}
if (recorderfa && recordersol && recorderla && recordersi && recorderdohigh) {
pool.play(recorder_fa, 1, 1, 1, 0, 1);
}
if (recordersol && recorderla && recordersi && recorderdohigh) {
pool.play(recorder_sol, 1, 1, 1, 0, 1);
}
if (recorderla && recordersi && recorderdohigh) {
pool.play(recorder_la, 1, 1, 1, 0, 1);
}
if (recordersi && recorderdohigh) {
pool.play(recorder_si, 1, 1, 1, 0, 1);
}
if (recorderla && recorderdohigh) {
pool.play(recorder_dohigh, 1, 1, 1, 0, 1);
}
if (recorderdo && recorderre && recordermi && recordersol && recorderla && recordersi && recorderdohigh) {
pool.play(recorder_fi, 1, 1, 1, 0, 1);
}
// Two buttons pressed, Do your stuff
return true;
}
public boolean onKeyUp(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_W) {
recorderdo = false;
} else if (keyCode == KeyEvent.KEYCODE_A) {
recorderre = false;
} else if (keyCode == KeyEvent.KEYCODE_S) {
recordermi = false;
} else if (keyCode == KeyEvent.KEYCODE_D) {
recorderfa = false;
} else if (keyCode == KeyEvent.KEYCODE_F) {
recordersol = false;
} else if (keyCode == KeyEvent.KEYCODE_G) {
recorderla = false;
} else if (keyCode == KeyEvent.KEYCODE_E) {
recordersi = false;
} else if (keyCode == KeyEvent.KEYCODE_R) {
recorderdohigh = false;
}
return true;
}
}
안녕하세요. 전문가님들의 도움 덕에 하나하나 작은 발걸음을 내딛고 있습니다.
이제 거의 마지막 단계입니다. 이렇게 하니 리코더 음이 동시 입력을 통해 소리가 나긴 합니다.
근데 명령어가 중복되서 여러음이 동시에 납니다.
한음씩만 나게 하는 방법은 없을까요?