使用 MediaPlayer 时通过耳机播放声音

Play sound through earpiece when using MediaPlayer

我正在我的应用程序中播放语音信箱录音。我目前的设置方式是,它通过扬声器播放语音邮件。能够在免提电话和听筒之间切换的最佳方式是什么。以下是我设置 MediaPlayer 的方法:

    mediaPlayer = new MediaPlayer();
    mediaPlayer.setOnPreparedListener(this);
    mediaPlayer.setOnCompletionListener(this);
    mediaPlayer.setOnErrorListener(this);
    mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
    try {
        mediaPlayer.setDataSource(url);
    } catch (Exception e) {
        e.printStackTrace();
        return;
    }
    mediaPlayer.prepareAsync();

我正在构建 4.1 plus。

您还需要设置音频管理器模式。然后使用 audiomgr.setSpeakerphoneOn(false) api 你可以切换。

audiomgr = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
audiomgr.setMode(AudioManager.STREAM_MUSIC);
audiomgr.setSpeakerphoneOn(false);