use of com.juns.wechat.chat.utils.CameraHelper in project wechat by motianhuo.
the class VideoCallActivity method onCreate.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_video_call);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON | WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD | WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
callStateTextView = (TextView) findViewById(R.id.tv_call_state);
comingBtnContainer = (LinearLayout) findViewById(R.id.ll_coming_call);
rootContainer = (RelativeLayout) findViewById(R.id.root_layout);
refuseBtn = (Button) findViewById(R.id.btn_refuse_call);
answerBtn = (Button) findViewById(R.id.btn_answer_call);
hangupBtn = (Button) findViewById(R.id.btn_hangup_call);
muteImage = (ImageView) findViewById(R.id.iv_mute);
handsFreeImage = (ImageView) findViewById(R.id.iv_handsfree);
callStateTextView = (TextView) findViewById(R.id.tv_call_state);
nickTextView = (TextView) findViewById(R.id.tv_nick);
chronometer = (Chronometer) findViewById(R.id.chronometer);
voiceContronlLayout = (LinearLayout) findViewById(R.id.ll_voice_control);
btnsContainer = (RelativeLayout) findViewById(R.id.ll_btns);
topContainer = (LinearLayout) findViewById(R.id.ll_top_container);
bottomContainer = (LinearLayout) findViewById(R.id.ll_bottom_container);
refuseBtn.setOnClickListener(this);
answerBtn.setOnClickListener(this);
hangupBtn.setOnClickListener(this);
muteImage.setOnClickListener(this);
handsFreeImage.setOnClickListener(this);
rootContainer.setOnClickListener(this);
msgid = UUID.randomUUID().toString();
// 获取通话是否为接收方向的
isInComingCall = getIntent().getBooleanExtra("isComingCall", false);
username = getIntent().getStringExtra("username");
// 设置通话人
nickTextView.setText(username);
// 显示本地图像的surfaceview
localSurface = (SurfaceView) findViewById(R.id.local_surface);
localSurface.setZOrderMediaOverlay(true);
localSurface.setZOrderOnTop(true);
localSurfaceHolder = localSurface.getHolder();
// 获取callHelper,cameraHelper
callHelper = EMVideoCallHelper.getInstance();
cameraHelper = new CameraHelper(callHelper, localSurfaceHolder);
// 显示对方图像的surfaceview
oppositeSurface = (SurfaceView) findViewById(R.id.opposite_surface);
oppositeSurfaceHolder = oppositeSurface.getHolder();
// 设置显示对方图像的surfaceview
callHelper.setSurfaceView(oppositeSurface);
localSurfaceHolder.addCallback(new localCallback());
oppositeSurfaceHolder.addCallback(new oppositeCallback());
// 设置通话监听
addCallStateListener();
if (!isInComingCall) {
// 拨打电话
soundPool = new SoundPool(1, AudioManager.STREAM_RING, 0);
outgoing = soundPool.load(this, R.raw.outgoing, 1);
comingBtnContainer.setVisibility(View.INVISIBLE);
hangupBtn.setVisibility(View.VISIBLE);
String st = getResources().getString(R.string.Are_connected_to_each_other);
callStateTextView.setText(st);
handler.postDelayed(new Runnable() {
public void run() {
streamID = playMakeCallSounds();
}
}, 300);
} else {
// 有电话进来
voiceContronlLayout.setVisibility(View.INVISIBLE);
localSurface.setVisibility(View.INVISIBLE);
Uri ringUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE);
audioManager.setMode(AudioManager.MODE_RINGTONE);
audioManager.setSpeakerphoneOn(true);
ringtone = RingtoneManager.getRingtone(this, ringUri);
ringtone.play();
}
}
Aggregations