나는 가속도계를 사용하는 앱을 만들고 있는데, 흔들림을 감지하면 원시 폴더에서 소리가납니다. 내 문제는 사운드가 끝나지 않고 새로운 쉐이크 모션이 감지되면 사운드가 다시 트리거되고 이전 사운드가 취소된다는 것입니다. 새 사운드 파일을 재생하려면 먼저 이전 사운드 파일을 완성해야합니다. 어떻게이 문제를 해결할 수 있습니까? 센서 또는 연극반에서해야합니까? 잔유를 가지고 미디어 플레이어를 시작하는 클래스입니다.다시 시작하기 전에 안드로이드 미디어 플레이어를 완료하십시오.
public void Play(final int resid) {
Log.d(TAG, "i Play(med resid)");
if (mp != null && mp.isPlaying()) { //ta bort isplaying
Log.v(TAG, "Reset");
mp.reset();
Log.v(TAG, "Release");
mp.release();
}
if (resid == 0) {
Toast.makeText(this, "Choose an instrument", Toast.LENGTH_SHORT).show();
} else {
Log.d(TAG,"Now playing!");
mp = MediaPlayer.create(getApplicationContext(), resid);
mp.start();
int duration = mp.getDuration();
Log.v(TAG, "Length: " + duration);
}
}
이 다시 시작되는 센서
public void TiltingSensor(SensorEvent event, int resid) {
Sensor mSensor = event.sensor;
if (mSensor.getType() == Sensor.TYPE_ACCELEROMETER) {
float x_axis = event.values[0];
float y_axis = event.values[1];
if ((x_axis < 9.80 && x_axis > 0.50) && (y_axis > -9 && y_axis < 0)){
//Log.d("Angles", Float.toString(x_axis) + " Y: " + Float.toString(y_axis));
Play(resid);
}
}
}