2017-09-05 1 views
0

이어폰이 안드로이드에 연결되어있을 때 이어폰에서만 소리가납니다. (알람 볼륨 기준)[Android] 이어폰이 연결되어있을 때 이어폰 소리 만

 AudioManager audioManager = (AudioManager)context.getSystemService(Context.AUDIO_SERVICE); 
     audioManager.setStreamVolume(AudioManager.STREAM_ALARM,alarmVolume,0); 

     mediaPlayer.setAudioStreamType(AudioManager.STREAM_ALARM); 
     mediaPlayer.prepare(); 
     mediaPlayer.setLooping(false); 

     mediaPlayer.start(); 

답변

0

이 경우 유선 헤드셋 상태를 청취해야합니다.

private void registerWiredHeadsetIntentBroadcast() { 
    IntentFilter filter = new IntentFilter("android.intent.action.HEADSET_PLUG"); 
    this.wiredHeadsetReceiver = new BroadcastReceiver() { 
     public void onReceive(Context context, Intent intent) { 
      int state = intent.getIntExtra("state", 0); 
      int microphone = intent.getIntExtra("microphone", 0); 
      boolean hasWiredHeadset = state == 1; 
      isWiredHeadsetPlugged=hasWiredHeadset; 
       switch (state) { 
        case 0: 
         //unplugged 
         audioManager.setWiredHeadsetOn(false); 
         audioManager.setSpeakerphoneOn(true); 
         break; 
        case 1: 
         //plugged 
         audioManager.setWiredHeadsetOn(true); 
         break; 
        default: 
       } 
     } 
    }; 
    this.apprtcContext.registerReceiver(this.wiredHeadsetReceiver, filter); 
} 

오디오 관리자에 AudioStreamType을 지정하면 잘 처리됩니다.

+0

안녕하세요, 대단히 감사합니다. 불행히도 다음을 시도했지만 작동하지 않습니다. 도움. . -------------------- AudioManager audioManager = (AudioManager) context.getSystemService (Context.AUDIO_SERVICE); audioManager.setStreamVolume (AudioManager.STREAM_ALARM, alarmVolume, 0); audioManager.setWiredHeadsetOn (true); audioManager.setSpeakerphoneOn (false); mediaPlayer.setAudioStreamType (AudioManager.STREAM_ALARM); mediaPlayer.prepare(); mediaPlayer.setLooping (false); mediaPlayer.start();' – user3323951

관련 문제