android 如何强制声音文件只用耳机播放

How to force sound file to play only with headphones in android

我正在开发一个应用程序,我需要只用耳机播放声音文件,没有扬声器,没有耳机天气耳机是否插入,开关按钮的打开或关闭状态。我为此编写了以下代码。

audioManager.setMode(AudioManager.STREAM_MUSIC);
                    if(mPrefs.getBoolean("flow_recording", false)){
                        audioManager.setWiredHeadsetOn(true);
                        audioManager.setSpeakerphoneOn(false);
                    }
                    else{
                        audioManager.setWiredHeadsetOn(false);
                        audioManager.setSpeakerphoneOn(true);
                    }
                    mPlayer.start();

但当我拔下耳机时它仍然通过扬声器播放音频。

请指导我实现这一目标。

好的,我已经在 link

的帮助下解决了这个问题

下面是我的工作代码:-

audioManager.setMode(AudioManager.STREAM_MUSIC);
            if(mPrefs.getBoolean("flow_recording", false)){
                /*audioManager.setWiredHeadsetOn(true);
                audioManager.setSpeakerphoneOn(false);*/
                if(audioManager.isWiredHeadsetOn() && mPlayer != null){
                    Log.e("HeadPhone", "Playing via headphone");
                    mPlayer.start();
                }
            }
            else{
                if(audioManager.isSpeakerphoneOn() && mPlayer != null){
                    Log.e("Speaker", "Playing via speaker");
                    mPlayer.start();
                }
                /*audioManager.setWiredHeadsetOn(false);
                audioManager.setSpeakerphoneOn(true);*/
            }