我是安卓新手!我正在编写一个简单的媒体播放器,我想在播放音频时在免提电话和听筒之间切换。我设置了一个接近传感器,当设备靠近耳朵时,我希望它通过听筒播放,反之亦然。目前我写了这段代码:
import android.content.Context;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity implements SensorEventListener{
TextView proxText;
SensorManager sm;
Sensor proxSensor;
MediaPlayer mp;
AudioManager am;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mp = MediaPlayer.create(this, R.raw.audio);
mp.start();
am =(AudioManager)getSystemService(Context.AUDIO_SERVICE);
sm = (SensorManager) getSystemService(SENSOR_SERVICE);
proxSensor = sm.getDefaultSensor(Sensor.TYPE_PROXIMITY);
proxText = (TextView) findViewById(R.id.proximityTextView);
sm.registerListener(this,proxSensor, SensorManager.SENSOR_DELAY_NORMAL);
}
@Override
public void onSensorChanged(SensorEvent event) {
if(event.values[0]<event.sensor.getMaximumRange()){
proxText.setText("close");
mp.setAudioStreamType(am.STREAM_VOICE_CALL);
}
else
proxText.setText("far");
mp.setAudioStreamType(am.STREAM_MUSIC);
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
}
但它不起作用......我想我没有正确设置 MediaPlayer 和 AudioManager。
请你帮助我好吗?先感谢您!;-)