Search code examples
androidandroid-mediaplayer

how to switching from speaker and earpiace during audio play


i need to implement a switch function to change from speaker and earpiace

i used this code to play in earpiace

MediaPlayer mediaPlayer = new MediaPlayer();
mediaPlayer.setDataSource(this, Uri.parse("http://***.mp3"));
mediaPlayer.setAudioStreamType(AudioManager.STREAM_VOICE_CALL);
mediaPlayer.prepare();
mediaPlayer.start();

if use AudioManager.STREAM_MUSIC instead of AudioManager.STREAM_VOICE_CALL works with speaker. but if i switch rintime there is no changes. this is my code

int currentPosition = mediaPlayer.getCurrentPosition();
mediaPlayer.stop();
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mediaPlayer.prepare();
mediaPlayer.seekTo(currentPosition);
mediaPlayer.start();

Solution

  • Try doing this:

    int currentPosition = mediaPlayer.getCurrentPosition();
    mediaPlayer.stop();
    // The next two lines are added to your original code
    mediaPlayer.reset();
    mediaPlayer.setDataSource(this, Uri.parse("http://***.mp3"));
    mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
    mediaPlayer.prepare();
    mediaPlayer.seekTo(currentPosition);
    mediaPlayer.start();