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. 如何通過ChangeFeed得到有關Cosmos DB更改的通知?
- 2. 如何才能在UWP上使用Azure推送通知?
- 3. 慢速查詢問題 - 得到通知
- 4. 某人如何在iPhone上獲得加速計歷史記錄?
- 5. 如何在寫入之前獲得更改文件的通知?
- 6. 如何在加速度計更改上以隨機方式動畫排序?
- 7. 如何在WebView App中有任何更改時添加通知?
- 8. 在XML文件上通知更改
- 9. 在Eclipse TextEditor中更改光標位置時得到通知
- 10. 傾斜iPhone更改UIImage(加速度計)
- 11. 任何人都知道如何才能在iOS中的UITextView中更改遊標?
- 12. 在contactslist更改時收到通知
- 13. 是否有可能在Android上更改通知點顏色Oreo
- 14. 如何在領域對象更新時得到通知
- 15. Android系統區域設置更改時如何獲得通知?
- 16. 如何自動獲得有關IP地址更改的通知
- 17. 如何獲得有關SharePoint組更改的通知。
- 18. 如何在UIView完全加載時得到通知
- 19. 如何在「添加帳戶」活動完成時得到通知
- 20. 在加速表上更改精靈位置更改
- 21. 如何通知ViewModel對Model(EntityObject)計算屬性的更改
- 22. 如何在WiFi網絡狀態更改時收到通知?
- 23. 如何在網絡狀態更改時收到通知?
- 24. 推送通知得到改變
- 25. 更改上迅速
- 26. 如何才能得到谷歌加iphone的共同朋友sdk
- 27. 需要幫助才能使得這個速度更快
- 28. 如何實現屬性更改通知
- 29. 如何更改推送通知聲音?
- 30. 如何通知RootViewController查看更改
您應該在每次想玩某些東西時都不要實例化您的媒體播放器,效率非常低。 –