2016-04-15 90 views
1

我正在製作一個項目,當To​​ast「Fall Detected」出現20秒時,我需要自動啓動mp3或任何響亮的聲音。誰能告訴我如何啓動mp3?

public void onSensorChanged(SensorEvent event) 
{ 
    if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER) 
    { 
     long curTime = System.currentTimeMillis(); 
     if ((curTime - mLastShakeTime) > MIN_TIME_BETWEEN_SHAKES_MILLISECS) 
     { 
      float x = event.values[0]; 
      float y = event.values[1]; 
      float z = event.values[2]; 

      double acceleration = Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2) + Math.pow(z, 2)) - SensorManager.GRAVITY_EARTH; 

      Log.d("mySensor", "Acceleration is " + acceleration + "m/s^2"); 

      if (acceleration < -9.00f && acceleration> -15.00f) 
      { 
       mLastShakeTime = curTime; 
       Toast.makeText(getApplicationContext(), "FALL DETECTED", 
       Toast.LENGTH_LONG).show(); 
      } 
     } 
    } 
} 
+0

鑑於上下文,您可能需要對「警報」的含義有所瞭解。在Android中,「鬧鐘」具體指的是使應用程序在將來特定時間醒來的方法。這是你想要的,還是你在「發出一些噪音」警報之後? – jgm

+0

是的,你是對的,我使用鬧鐘來喚醒 – Abhishek

回答

1

鑑於你對原始問題的澄清,它聽起來像你想播放聲音。在這種情況下,您想要類似於:

final MediaPlayer player = MediaPlayer.create(this, R.raw.alarm); 
player.start(); 

R.raw.alarm是包含要播放的聲音的文件的資源。

+0

你能告訴我如何在沒有用戶狀態改變的情況下讓聲音響亮嗎?我的意思是每當手機靜音或者聲音不響時都要大聲播放。 – Abhishek

+0

請爲此開始另一個問題,因爲這是一個不同的問題。 – jgm

+0

我正在嘗試與您的答案,但沒有奏效。 – Abhishek

相關問題