我想动态检测手的运动并相应地修改声音。手机以固定的方向在手中,不会改变。例如,我伸直的手握着手机,当手机向右或向左移动时,我的音乐音量会动态变化;如果我上下移动,播放速度会发生变化,并且以某个中间角度移动会相应地改变速度和音量。我在做这些运动时绘制了加速度计数据,似乎有一些模式,但我不确定如何过滤这些数据。我看过很多帖子——高通/低通滤波器、卡尔曼滤波器、手势识别器,但很难理解什么是合适的方法。大多数帖子似乎都没有动态检测 - 但只有在某个手势完成时才会检测到。我只需要使用加速度计而不是陀螺仪和任何其他传感器。这里的正确方法是什么?是否有任何现有的图书馆可以做到这一点?
问问题
1168 次
1 回答
0
如果您的活动实施
SensorEventListener
你使用变量
private SensorManager sensorManager;
private Sensor mAccelerometer;
在您的 OnCreate() 中实例化它们并像这样注册侦听器:
sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
mAccelerometer = sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
sensorManager.registerListener(this, mAccelerometer,
SensorManager.SENSOR_DELAY_FASTEST);
然后使用这种方法获取加速度计数据
public void onSensorChanged(SensorEvent event) {
double x = event.values[0];
double y = event.values[1];
double z = event.values[2];
}
您可以根据从加速度计获得的值从那里获取它,更改音量或其他
于 2013-07-31T05:11:27.617 回答