diff --git a/app/src/main/java/com/tianrun/sipcall/call/InCallActivity.java b/app/src/main/java/com/tianrun/sipcall/call/InCallActivity.java index e1c8f6f..6c61984 100644 --- a/app/src/main/java/com/tianrun/sipcall/call/InCallActivity.java +++ b/app/src/main/java/com/tianrun/sipcall/call/InCallActivity.java @@ -51,7 +51,6 @@ public class InCallActivity extends TrBaseActivity implements OnClickListener { private SMPercentFrameLayout localRenderLayout; private SMPercentFrameLayout remoteRenderLayout; private ImageButton incall_answer, incall_hangup; - private Ringtone ringtone; private TextView show; QMUITabSegment mTabSegment; ViewPager mContentViewPager; @@ -65,6 +64,7 @@ public class InCallActivity extends TrBaseActivity implements OnClickListener { private boolean selfCall = false; private boolean VIDEOSTATE = false; public static Intent incallIntent; + private Ringtone ringtone; public String[] screenTyps = {"经典模式", "均分模式", "远程全屏", "本地全屏"}; @@ -188,19 +188,26 @@ public class InCallActivity extends TrBaseActivity implements OnClickListener { super.onResume(); if (callstate.equals("来电")) { incall_answer.setVisibility(View.VISIBLE); + ringtone = SipEngine.getInstance().PlaydefaultCallMediaPlayer(this); } else { incall_answer.setVisibility(View.GONE); } show.setText(callnumber + callstate); - if (incall_answer.getVisibility() == View.VISIBLE && selfCall) { - answer(); - } else { - ringtone = SipEngine.getInstance().PlaydefaultCallMediaPlayer(this); - AutoAnwser(); //5秒后自动接听 + if (incall_answer.getVisibility() == View.VISIBLE){ + if(selfCall) { +// incall_answer.setVisibility(View.GONE); +// SipEngine.getInstance().answer(callid); +// SipEngine.getInstance().StopdefaultCallMediaPlayer(ringtone); +// ringtone = null; + answer(); + } else { + AutoAnwser(); + } } + } - static void AutoAnwser(){ + static void AutoAnwser() { handler_CallActivity.postDelayed(doAutoAnwser, 5000); } static Runnable doAutoAnwser = new Runnable() { @@ -209,6 +216,7 @@ public class InCallActivity extends TrBaseActivity implements OnClickListener { CONS.SENDMESSAGETO(handler_CallActivity, -2, null); } }; + @Override protected void onPause() { super.onPause(); @@ -219,6 +227,8 @@ public class InCallActivity extends TrBaseActivity implements OnClickListener { protected void onDestroy() { stopVideoStream(true); super.onDestroy(); + SipEngine.getInstance().StopdefaultCallMediaPlayer(ringtone); + ringtone = null; SipEngine.getInstance().hangup(callid); handler_CallActivity.removeCallbacks(doAutoAnwser); handler_CallActivity = null; @@ -226,8 +236,6 @@ public class InCallActivity extends TrBaseActivity implements OnClickListener { wakeLock.release(); wakeLock = null; } - SipEngine.getInstance().StopdefaultCallMediaPlayer(ringtone); - ringtone = null; } /** @@ -347,21 +355,26 @@ public class InCallActivity extends TrBaseActivity implements OnClickListener { if (SipEngine.callPagesConfig.size() == 0) { finish(); } - SipEngine.getInstance().StopdefaultCallMediaPlayer(ringtone); break; case R.id.incall_answer: +// incall_answer.setVisibility(View.GONE); +// SipEngine.getInstance().answer(callid); +// SipEngine.getInstance().StopdefaultCallMediaPlayer(ringtone); +// ringtone = null; answer(); break; } } - public void answer(){ + public void answer() { incall_answer.setVisibility(View.GONE); SipEngine.getInstance().answer(callid); SipEngine.getInstance().StopdefaultCallMediaPlayer(ringtone); + ringtone = null; handler_CallActivity.removeCallbacks(doAutoAnwser); } + public void ShowVideoView(boolean show) { if (show) { localRenderLayout.setVisibility(View.VISIBLE); diff --git a/app/src/main/java/com/tianrun/sipcall/call/InCallMeetingActivity.java b/app/src/main/java/com/tianrun/sipcall/call/InCallMeetingActivity.java index 0650164..1c8461c 100644 --- a/app/src/main/java/com/tianrun/sipcall/call/InCallMeetingActivity.java +++ b/app/src/main/java/com/tianrun/sipcall/call/InCallMeetingActivity.java @@ -86,9 +86,10 @@ public class InCallMeetingActivity extends TrBaseActivity implements OnClickList private boolean selfCall = false; private boolean VIDEOSTATE = false; public static Intent incallIntent; + private Ringtone ringtone; + private boolean isinited = false; - private Ringtone ringtone; TrAdapter adapterUser; @@ -514,6 +515,7 @@ public class InCallMeetingActivity extends TrBaseActivity implements OnClickList incall_answer.setVisibility(View.VISIBLE); incall_mute.setVisibility(View.GONE); incall_muteVideo.setVisibility(View.GONE); + ringtone = SipEngine.getInstance().PlaydefaultCallMediaPlayer(this); } else { incall_answer.setVisibility(View.GONE); if (DBUser.mySelf != null && DBUser.mySelf.isManager) { @@ -527,15 +529,20 @@ public class InCallMeetingActivity extends TrBaseActivity implements OnClickList } show.setText(callnumber + callstate); //控件显示号码,来电,去电,通话中... - if (incall_answer.getVisibility() == View.VISIBLE && selfCall) { - answer(); - } else { - ringtone = SipEngine.getInstance().PlaydefaultCallMediaPlayer(this); - AutoAnwser(); //5秒后自动接听 + if (incall_answer.getVisibility() == View.VISIBLE ) { + if(selfCall) { +// incall_answer.setVisibility(View.GONE); +// SipEngine.getInstance().answer(callid); +// SipEngine.getInstance().StopdefaultCallMediaPlayer(ringtone); +// ringtone = null; + answer(); + } else { + AutoAnwser(); + } } - } - static void AutoAnwser(){ + } + static void AutoAnwser() { handler_CallActivity.postDelayed(doAutoAnwser, 5000); } static Runnable doAutoAnwser = new Runnable() { @@ -555,6 +562,8 @@ public class InCallMeetingActivity extends TrBaseActivity implements OnClickList protected void onDestroy() { stopVideoStream(true); super.onDestroy(); + SipEngine.getInstance().StopdefaultCallMediaPlayer(ringtone); + ringtone = null; SipEngine.getInstance().hangup(callid); handler_CallActivity.removeCallbacks(getMemberRunner); handler_CallActivity.removeCallbacks(doAutoAnwser); @@ -564,8 +573,6 @@ public class InCallMeetingActivity extends TrBaseActivity implements OnClickList wakeLock = null; } - SipEngine.getInstance().StopdefaultCallMediaPlayer(ringtone); - ringtone = null; } /** @@ -634,7 +641,7 @@ public class InCallMeetingActivity extends TrBaseActivity implements OnClickList case -1: getMembers(); break; - case -2: + case -2: answer(); break; } @@ -699,7 +706,6 @@ public class InCallMeetingActivity extends TrBaseActivity implements OnClickList if (SipEngine.callPagesConfig.size() == 0) { finish(); } - SipEngine.getInstance().StopdefaultCallMediaPlayer(ringtone); break; case R.id.incall_answer: answer(); @@ -712,7 +718,6 @@ public class InCallMeetingActivity extends TrBaseActivity implements OnClickList break; } } - public void answer() { incall_answer.setVisibility(View.GONE); if (DBUser.mySelf != null && DBUser.mySelf.isManager) { @@ -720,6 +725,7 @@ public class InCallMeetingActivity extends TrBaseActivity implements OnClickList } SipEngine.getInstance().answer(callid); SipEngine.getInstance().StopdefaultCallMediaPlayer(ringtone); + ringtone = null; handler_CallActivity.removeCallbacks(doAutoAnwser); }