我正在尝试通过默认扬声器或小扬声器(在通话期间使用)播放音频文件。 现在我正在尝试使用接近传感器在这两个选项之间进行选择。 这是我的代码:
am = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
am.setMode(AudioManager.STREAM_MUSIC);
m=MediaPlayer.create(getApplicationContext(), R.raw.a_meno_che_non);
m.setAudioStreamType(AudioManager.STREAM_MUSIC);
am.setSpeakerphoneOn(true);
SensorEventListener proximitySensorEventListener = new SensorEventListener(){
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
@Override
public void onSensorChanged(SensorEvent event) {
if(event.sensor.getType()==Sensor.TYPE_PROXIMITY){
if((int)(event.values[0])==myProximitySensor.getMaximumRange()){
am.setSpeakerphoneOn(true);
}
else {
am.setSpeakerphoneOn(false);
}
}
}
};
这种方法很有效,但不是很好,因为在扬声器之间切换时会丢失一部分音频(大约2秒钟)。
我该如何解决这个问题?