android.media.AudioManager#MODE_IN_COMMUNICATION源码实例Demo

下面列出了android.media.AudioManager#MODE_IN_COMMUNICATION 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: imsdk-android   文件: RtcActivity.java
/**
 * 免提,切换外放和听筒
 */
private void switchAudioMute() {
    int result = audioManager.ting();
    if(result == AudioManager.MODE_NORMAL) {
        if(videoEnable) {
            rtcMute.setCompoundDrawablesWithIntrinsicBounds(null, getResources().getDrawable(R.drawable.pub_imsdk_rtc_audio_open), null, null);
        } else {
            audioMute.setCompoundDrawablesWithIntrinsicBounds(null, getResources().getDrawable(R.drawable.pub_imsdk_rtc_audio_open), null, null);
        }
    } else if(result == AudioManager.MODE_IN_COMMUNICATION) {
        if(videoEnable) {
            rtcMute.setCompoundDrawablesWithIntrinsicBounds(null, getResources().getDrawable(R.drawable.pub_imsdk_rtc_audio_close), null, null);
        } else {
            audioMute.setCompoundDrawablesWithIntrinsicBounds(null, getResources().getDrawable(R.drawable.pub_imsdk_rtc_audio_close), null, null);
        }
    }

}
 
源代码2 项目: webrtc_android   文件: WebRtcAudioManager.java
@Override
public void run() {
  final int mode = audioManager.getMode();
  if (mode == AudioManager.MODE_RINGTONE) {
    Logging.d(TAG, "STREAM_RING stream volume: "
            + audioManager.getStreamVolume(AudioManager.STREAM_RING) + " (max="
            + maxRingVolume + ")");
  } else if (mode == AudioManager.MODE_IN_COMMUNICATION) {
    Logging.d(TAG, "VOICE_CALL stream volume: "
            + audioManager.getStreamVolume(AudioManager.STREAM_VOICE_CALL) + " (max="
            + maxVoiceCallVolume + ")");
  }
}
 
源代码3 项目: webrtc_android   文件: VolumeLogger.java
@Override
public void run() {
  final int mode = audioManager.getMode();
  if (mode == AudioManager.MODE_RINGTONE) {
    Logging.d(TAG,
        "STREAM_RING stream volume: " + audioManager.getStreamVolume(AudioManager.STREAM_RING)
            + " (max=" + maxRingVolume + ")");
  } else if (mode == AudioManager.MODE_IN_COMMUNICATION) {
    Logging.d(TAG,
        "VOICE_CALL stream volume: "
            + audioManager.getStreamVolume(AudioManager.STREAM_VOICE_CALL)
            + " (max=" + maxVoiceCallVolume + ")");
  }
}
 
源代码4 项目: imsdk-android   文件: RtcActivity.java
private void playAudio() {
        switch (audioManager.getRingMode()) {
            case AudioManager.RINGER_MODE_NORMAL://响铃
            case AudioManager.MODE_IN_COMMUNICATION://音频通话
                MediaUtils.playRtcSound(RtcActivity.this, R.raw.atom_rtc_video_prompt);
                if(!isCaller) {
                    audioManager.changeToEarpieceMode();
                } else {
                    audioManager.changeToSpeakerMode();
                }
//                        MediaUtils.loadRtcSound(RtcActivity.this, R.raw.atom_rtc_video_prompt);
//                        MediaUtils.playRtcTone(RtcActivity.this);
                break;
            case AudioManager.RINGER_MODE_SILENT://静音
            case AudioManager.RINGER_MODE_VIBRATE://震动
                if(!isCaller) {
                    MediaUtils.playRtcSound(RtcActivity.this, R.raw.atom_rtc_video_prompt);
                    audioManager.changeToEarpieceMode();
                } else {
                    vibrator = (Vibrator) getSystemService(VIBRATOR_SERVICE);
                    //按照指定的模式去震动。
//				vibrator.vibrate(1000);
                    //数组参数意义:第一个参数为等待指定时间后开始震动,震动时间为第二个参数。后边的参数依次为等待震动和震动的时间
                    //第二个参数为重复次数,-1为不重复,0为一直震动
                    vibrator.vibrate( new long[]{1000,1000},0);
                }
                break;
        }
    }
 
源代码5 项目: imsdk-android   文件: RtcActivity.java
protected void shownVideo() {
    //localRender.setVisibility(View.VISIBLE);
    //remoteRender.setVisibility(View.VISIBLE);
    //vsv.setVisibility(View.VISIBLE);
    videoLayout.setVisibility(View.VISIBLE);
    audioLayout.setVisibility(View.GONE);

    if(audioManager == null) return;
    if(audioManager.getMode() == AudioManager.MODE_IN_COMMUNICATION) {
        rtcMute.setCompoundDrawablesWithIntrinsicBounds(null, getResources().getDrawable(R.drawable.pub_imsdk_rtc_audio_close), null, null);
    } else {
        rtcMute.setCompoundDrawablesWithIntrinsicBounds(null, getResources().getDrawable(R.drawable.pub_imsdk_rtc_audio_open), null, null);
    }
}
 
源代码6 项目: imsdk-android   文件: RtcActivity.java
protected void showAudio() {
    videoLayout.setVisibility(View.GONE);
    audioLayout.setVisibility(View.VISIBLE);
    if(audioManager == null) return;
    if(audioManager.getMode() == AudioManager.MODE_IN_COMMUNICATION) {
        audioMute.setCompoundDrawablesWithIntrinsicBounds(null, getResources().getDrawable(R.drawable.pub_imsdk_rtc_audio_close), null, null);
    } else {
        audioMute.setCompoundDrawablesWithIntrinsicBounds(null, getResources().getDrawable(R.drawable.pub_imsdk_rtc_audio_open), null, null);
    }
}
 
源代码7 项目: imsdk-android   文件: AppRTCAudioManager.java
public int ting()
{
   if(getSelectedAudioDevice() == AudioDevice.SPEAKER_PHONE)
   {
     if(audioManager.getMode() == AudioManager.MODE_IN_COMMUNICATION)
     {
       return changeToSpeakerMode();
     }
     else if(audioManager.getMode() == AudioManager.MODE_NORMAL) {
       return changeToEarpieceMode();
     }
   }
  return -1;
}
 
源代码8 项目: imsdk-android   文件: AppRTCAudioManager.java
/**
 * 听筒模式
 * @return
 */
public int changeToEarpieceMode() {
  audioManager.setSpeakerphoneOn(false);
  audioManager.setMode(AudioManager.MODE_IN_COMMUNICATION);
  ((Activity) apprtcContext).setVolumeControlStream(AudioManager.STREAM_VOICE_CALL);
  return AudioManager.MODE_IN_COMMUNICATION;
}
 
源代码9 项目: sealrtc-android   文件: CallActivity.java
private void startBluetoothSco() {
    AudioManager am = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
    if (am != null) {
        if (am.getMode() != AudioManager.MODE_IN_COMMUNICATION) {
            am.setMode(AudioManager.MODE_IN_COMMUNICATION);
        }
        am.setSpeakerphoneOn(false);
        am.startBluetoothSco();
    }
}
 
源代码10 项目: Linphone4Android   文件: LinphoneManager.java
public void setAudioManagerInCallMode() {
	if (mAudioManager.getMode() == AudioManager.MODE_IN_COMMUNICATION) {
		Log.w("[AudioManager] already in MODE_IN_COMMUNICATION, skipping...");
		return;
	}
	Log.d("[AudioManager] Mode: MODE_IN_COMMUNICATION");
	mAudioManager.setMode(AudioManager.MODE_IN_COMMUNICATION);
}
 
源代码11 项目: matrix-android-console   文件: CallViewActivity.java
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    // assume that the user cancels the call if it is ringing
    if (keyCode == KeyEvent.KEYCODE_BACK) {
        if (!canCallBeResumed()) {
            if (null != mCall) {
                mCall.hangup("");
            }
        } else {
            saveCallView();
        }
    } else if ((keyCode == KeyEvent.KEYCODE_VOLUME_DOWN) || (keyCode == KeyEvent.KEYCODE_VOLUME_UP)) {
        // this is a trick to reduce the ring volume :
        // when the call is ringing, the AudioManager.Mode switch to MODE_IN_COMMUNICATION
        // so the volume is the next call one whereas the user expects to reduce the ring volume.
        if ((null != mCall) && mCall.getCallState().equals(IMXCall.CALL_STATE_RINGING)) {
            AudioManager audioManager = (AudioManager) CallViewActivity.this.getSystemService(Context.AUDIO_SERVICE);
            // IMXChrome call issue
            if (audioManager.getMode() == AudioManager.MODE_IN_COMMUNICATION) {
                int musicVol = audioManager.getStreamVolume(AudioManager.STREAM_VOICE_CALL) * audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC) / audioManager.getStreamMaxVolume(AudioManager.STREAM_VOICE_CALL);
                audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, musicVol, 0);
            }
        }
    }

    return super.onKeyDown(keyCode, event);
}
 
源代码12 项目: linphone-android   文件: AndroidAudioManager.java
private void setAudioManagerInCallMode() {
    if (mAudioManager.getMode() == AudioManager.MODE_IN_COMMUNICATION) {
        Log.w("[Audio Manager] already in MODE_IN_COMMUNICATION, skipping...");
        return;
    }
    Log.d("[Audio Manager] Mode: MODE_IN_COMMUNICATION");

    mAudioManager.setMode(AudioManager.MODE_IN_COMMUNICATION);
}
 
源代码13 项目: linphone-android   文件: AndroidAudioManager.java
public synchronized void routeAudioToBluetooth() {
    if (!isBluetoothHeadsetConnected()) {
        Log.w("[Audio Manager] [Bluetooth] No headset connected");
        return;
    }
    if (mAudioManager.getMode() != AudioManager.MODE_IN_COMMUNICATION) {
        Log.w(
                "[Audio Manager] [Bluetooth] Changing audio mode to MODE_IN_COMMUNICATION and requesting STREAM_VOICE_CALL focus");
        mAudioManager.setMode(AudioManager.MODE_IN_COMMUNICATION);
        requestAudioFocus(STREAM_VOICE_CALL);
    }
    changeBluetoothSco(true);
}
 
源代码14 项目: webrtc_android   文件: WebRtcAudioManager.java
private boolean isCommunicationModeEnabled() {
  return (audioManager.getMode() == AudioManager.MODE_IN_COMMUNICATION);
}
 
源代码15 项目: sealrtc-android   文件: CallActivity.java
@Override
public void onNotifyHeadsetState(boolean connected, int type) {
    try {
        if (connected) {
            HeadsetPlugReceiverState = true;
            if (type == 0) {
                startBluetoothSco();
            }
            if (null != btnMuteSpeaker) {
                btnMuteSpeaker.setBackgroundResource(R.drawable.img_capture_gray);
                btnMuteSpeaker.setSelected(false);
                btnMuteSpeaker.setEnabled(false);
                btnMuteSpeaker.setClickable(false);
                audioManager.onToggleSpeaker(false);
            }
        } else {
            if (type == 1 && BluetoothUtil.hasBluetoothA2dpConnected()) {
                return;
            }
            AudioManager am = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
            if (am != null) {
                if (am.getMode() != AudioManager.MODE_IN_COMMUNICATION) {
                    am.setMode(AudioManager.MODE_IN_COMMUNICATION);
                }
                if (type == 0) {
                    am.stopBluetoothSco();
                    am.setBluetoothScoOn(false);
                    am.setSpeakerphoneOn(!muteSpeaker);
                } else {
                    RCRTCEngine.getInstance().enableSpeaker(!this.muteSpeaker);
                }
                audioManager.onToggleSpeaker(!muteSpeaker);
            }
            if (null != btnMuteSpeaker) {
                btnMuteSpeaker.setBackgroundResource(R.drawable.selector_checkbox_capture);
                btnMuteSpeaker.setSelected(false);
                btnMuteSpeaker.setEnabled(true);
                btnMuteSpeaker.setClickable(true);
            }
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
}
 
源代码16 项目: ForceDoze   文件: Utils.java
public static boolean isUserInCommunicationCall(Context context) {
    AudioManager manager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
    return manager.getMode() == AudioManager.MODE_IN_CALL || manager.getMode() == AudioManager.MODE_IN_COMMUNICATION;
}