【问题标题】:How to force sound file to play only with headphones in android如何强制声音文件仅在android中使用耳机播放
【发布时间】:2015-11-21 11:45:55
【问题描述】:

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

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();

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

请指导我实现这一目标。

【问题讨论】:

  • 你在播放音频后插入耳机?
  • 不,我在有和没有耳机的情况下都可以玩。在这两种情况下它都在播放,但我只想用耳机播放。
  • 您应该检查耳机是否插入。如果插入耳机,播放声音。见这里,stackoverflow.com/questions/16395054/…
  • 表示不接耳机不玩?
  • @MurtazaKhursheedHussain 是的,我希望它只在 mPrefs.getBoolean("flow_recording", false) 条件为真时使用耳机播放。

标签: android audio headphones


【解决方案1】:

好的,我已经在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);*/
            }

【讨论】:

    猜你喜欢
    • 2015-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-04
    • 2014-04-06
    • 1970-01-01
    • 1970-01-01
    • 2018-06-18
    相关资源
    最近更新 更多