I'm trying to play an audio file through the default speaker or through the little speaker (used during calls). Now i'm trying to choose between these 2 options using the proximity sensor. Here's my code:
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);
}
}
}
};
this works, but not very well because when switching between the speakers it loses a part of audio (about 2 seconds).
How can I solve this?