1
A
回答
1
這裏是我的加速度計的代碼,我需要加速播放聲音剪輯..... 我在資源文件夾「gavel_single.wav」環......它的正常工作
I also send some references...
http://developer.android.com/resources/samples/AccelerometerPlay/index.html
my code
import android.app.Activity;
import android.content.res.AssetFileDescriptor;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnCompletionListener;
import android.os.Bundle;
public class SensorTest extends Activity implements SensorEventListener {
private SensorManager sensorManager;
private boolean color = false;
private long lastUpdate;
private MediaPlayer mMediaplayer;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
sensorManager.registerListener(this, sensorManager
.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),
SensorManager.SENSOR_DELAY_NORMAL);
lastUpdate = System.currentTimeMillis();
}
public void onSensorChanged(SensorEvent event) {
if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER) {
float[] values = event.values;
// Movement
float x = values[0];
float y = values[1];
float z = values[2];
float accelationSquareRoot = (x * x + y * y + z * z)
/(SensorManager.GRAVITY_EARTH * SensorManager.GRAVITY_EARTH);
long actualTime = System.currentTimeMillis();
if (accelationSquareRoot >= 2) //
{
if (actualTime - lastUpdate < 200) {
return;
}
lastUpdate = actualTime;
if (color) {
} else {
try {
AssetFileDescriptor afd = getAssets().openFd(
"gavel_single.wav");
mMediaplayer = new MediaPlayer();
mMediaplayer.setDataSource(afd.getFileDescriptor(), afd
.getStartOffset(), afd.getLength());
afd.close();
mMediaplayer.prepare();
mMediaplayer.start();
mMediaplayer
.setOnCompletionListener(new OnCompletionListener() {
public void onCompletion(MediaPlayer mp) {
mp.stop();
mp.release();
}
});
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
}
public void onAccuracyChanged(Sensor sensor, int accuracy) {
// TODO Auto-generated method stub
}
@Override
protected void onResume() {
super.onResume();
// register this class as a listener for the orientation and
// accelerometer sensors
sensorManager.registerListener(this, sensorManager
.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),
SensorManager.SENSOR_DELAY_NORMAL);
}
@Override
protected void onPause() {
// unregister listener
sensorManager.unregisterListener(this);
super.onStop();
}
@Override
protected void onDestroy() {
super.onDestroy();
if (mMediaplayer != null) {
mMediaplayer.release();
mMediaplayer = null;
}
}
}
2
查看應用程序中的Amazed示例遊戲-for-android http://code.google.com/p/apps-for-android/
它的佈局非常整齊,易於理解。
希望這可以幫助你的方式。
m
相關問題
- 1. 如何才能在頁面上獲得有關Ajax驅動的更改的通知?
- 2. 如何通過ChangeFeed得到有關Cosmos DB更改的通知?
- 3. 如果連接狀態改變,我怎樣才能得到通知?
- 4. 我怎樣才能獲得更高的加速度計採樣率
- 5. 如何才能在UWP上使用Azure推送通知?
- 6. 如何才能做到控制器的通知功能?
- 7. 慢速查詢問題 - 得到通知
- 8. 我如何才能通知我的活動用戶所做的更改?
- 9. 某人如何在iPhone上獲得加速計歷史記錄?
- 10. 小吃店解散時我怎樣才能得到通知?
- 11. 如何在寫入之前獲得更改文件的通知?
- 12. 如何快速通知網頁的特定更改?
- 13. 如何在加速度計更改上以隨機方式動畫排序?
- 14. 如何在WebView App中有任何更改時添加通知?
- 15. 在XML文件上通知更改
- 16. 設法設置setAttribute(ExifInterface.TAG_ORIENTATION,..)但不知道如何才能看到更改?
- 17. KnockoutJS,映射插件,在模型更改時得到通知?
- 18. 在Eclipse TextEditor中更改光標位置時得到通知
- 19. 如何獲得有關任何證書更改的通知
- 20. Android:在單選模式ListView中選擇更改時如何得到通知?
- 21. 傾斜iPhone更改UIImage(加速度計)
- 22. 任何人都知道如何才能在iOS中的UITextView中更改遊標?
- 23. 在contactslist更改時收到通知
- 24. 如何在領域對象更新時得到通知
- 25. 是否有可能在Android上更改通知點顏色Oreo
- 26. 我怎樣才能通過Oracle數據庫更改通知表的主鍵
- 27. 得到通知
- 28. 我如何獲得Android上的加速度計數據
- 29. Android系統區域設置更改時如何獲得通知?
- 30. 如何獲得關於更改的通知if_index
您應該在每次想玩某些東西時都不要實例化您的媒體播放器,效率非常低。 –