我正在製作使用加速度計的應用程序,當它檢測到搖動動作時,它會從原始文件夾播放聲音。我的問題是,如果聲音未完成,並且我檢測到新的搖動動作,則會再次觸發聲音,而前一個動作將被取消。我希望先前的聲音文件能夠在新的聲音文件播放之前完成。我怎樣才能做到這一點?是否應該在傳感器或遊戲班上完成? 這是需要一個渣油然後啓動媒體播放器的類。強制安卓媒體播放器在重新開始之前完成播放
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);
}
}
}