2016-04-15 96 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

相关问题