//全局变量
private int[] musics = {R.raw.music1,R.raw.music2,R.raw.music3,R.raw.music4};//音乐4首
int i=0;
private MediaPlayer player;
private SensorManager sensorM;
private Sensor sensor;
MainActivity.java
//播放音乐
player = MediaPlayer.create(this, musics[i]);
player.start();//播放
//得到传感器管理器
sensorM = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
//得到加速度传感器
sensor = sensorM.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
//给传感器绑定监听,第一个是监听器,第二个是传感器,第三个是采样数据的频率
sensorM.registerListener(new SensorEventListener() {
@Override
public void onSensorChanged(SensorEvent event) {
//得到改变后的数据值
int z = (int)event.values[2];
if(z > 20){//z大于12,表示真正的甩动了,否则小于12,表示不是主动甩动
player.stop();//停止上一首
player.release();//释放,节省内存
//开启新的歌曲
i++;//移动到下一首
player = MediaPlayer.create(MainActivity.this,musics[i%musics.length]);
player.start();
}
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
},sensor, SensorManager.SENSOR_DELAY_NORMAL);