Compare commits

...

4 Commits

Author SHA1 Message Date
f4c6060cbc Merge branch 'test'
# Conflicts:
#	app/src/main/java/com/tianrun/sipcall/call/InCallActivity.java
#	app/src/main/java/com/tianrun/sipcall/call/InCallMeetingActivity.java
2021-05-06 19:20:24 +08:00
7961a6b462 带自动接听 2021-05-06 17:47:20 +08:00
3b28584e4c 不带自动接听 2021-05-06 17:28:15 +08:00
eb6c7ddab8 fix 2021-05-06 16:07:22 +08:00
3 changed files with 91 additions and 26 deletions

View File

@@ -336,14 +336,18 @@ public class SipEngine implements BluetelInterface {
* *
* @throws Exception * @throws Exception
*/ */
public void PlaydefaultCallMediaPlayer(Context context) { public Ringtone PlaydefaultCallMediaPlayer(Context context) {
Uri notification = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE); Uri notification = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE);
Ringtone r = RingtoneManager.getRingtone(context, notification); Ringtone r = RingtoneManager.getRingtone(context, notification);
r.play(); r.play();
return r;
} }
public void StopdefaultCallMediaPlayer(Context context) { public void StopdefaultCallMediaPlayer(Ringtone r) {
Uri notification = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE); // Uri notification = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE);
Ringtone r = RingtoneManager.getRingtone(context, notification); // Ringtone r = RingtoneManager.getRingtone(context, notification);
// r.stop();
if(r != null) {
r.stop(); r.stop();
} }
}
} }

View File

@@ -6,6 +6,7 @@ import android.app.Activity;
import android.app.KeyguardManager; import android.app.KeyguardManager;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.media.Ringtone;
import android.os.Bundle; import android.os.Bundle;
import android.os.Handler; import android.os.Handler;
import android.os.Message; import android.os.Message;
@@ -63,6 +64,7 @@ public class InCallActivity extends TrBaseActivity implements OnClickListener {
private boolean selfCall = false; private boolean selfCall = false;
private boolean VIDEOSTATE = false; private boolean VIDEOSTATE = false;
public static Intent incallIntent; public static Intent incallIntent;
private Ringtone ringtone;
public String[] screenTyps = {"经典模式", "均分模式", "远程全屏", "本地全屏"}; public String[] screenTyps = {"经典模式", "均分模式", "远程全屏", "本地全屏"};
@@ -186,20 +188,35 @@ public class InCallActivity extends TrBaseActivity implements OnClickListener {
super.onResume(); super.onResume();
if (callstate.equals("来电")) { if (callstate.equals("来电")) {
incall_answer.setVisibility(View.VISIBLE); incall_answer.setVisibility(View.VISIBLE);
ringtone = SipEngine.getInstance().PlaydefaultCallMediaPlayer(this);
} else { } else {
incall_answer.setVisibility(View.GONE); incall_answer.setVisibility(View.GONE);
} }
show.setText(callnumber + callstate); show.setText(callnumber + callstate);
if (incall_answer.getVisibility() == View.VISIBLE && selfCall) { if (incall_answer.getVisibility() == View.VISIBLE){
incall_answer.setVisibility(View.GONE); if(selfCall) {
SipEngine.getInstance().answer(callid); // incall_answer.setVisibility(View.GONE);
SipEngine.getInstance().StopdefaultCallMediaPlayer(this); // SipEngine.getInstance().answer(callid);
// SipEngine.getInstance().StopdefaultCallMediaPlayer(ringtone);
// ringtone = null;
answer();
} else { } else {
SipEngine.getInstance().PlaydefaultCallMediaPlayer(this); AutoAnwser();
}
} }
} }
static void AutoAnwser() {
handler_CallActivity.postDelayed(doAutoAnwser, 5000);
}
static Runnable doAutoAnwser = new Runnable() {
@Override
public void run() {
CONS.SENDMESSAGETO(handler_CallActivity, -2, null);
}
};
@Override @Override
protected void onPause() { protected void onPause() {
super.onPause(); super.onPause();
@@ -210,7 +227,10 @@ public class InCallActivity extends TrBaseActivity implements OnClickListener {
protected void onDestroy() { protected void onDestroy() {
stopVideoStream(true); stopVideoStream(true);
super.onDestroy(); super.onDestroy();
SipEngine.getInstance().StopdefaultCallMediaPlayer(ringtone);
ringtone = null;
SipEngine.getInstance().hangup(callid); SipEngine.getInstance().hangup(callid);
handler_CallActivity.removeCallbacks(doAutoAnwser);
handler_CallActivity = null; handler_CallActivity = null;
if (wakeLock != null) { if (wakeLock != null) {
wakeLock.release(); wakeLock.release();
@@ -275,6 +295,9 @@ public class InCallActivity extends TrBaseActivity implements OnClickListener {
stopVideoStream(true); stopVideoStream(true);
finish(); finish();
break; break;
case -2:
answer();
break;
} }
return true; return true;
} }
@@ -334,13 +357,23 @@ public class InCallActivity extends TrBaseActivity implements OnClickListener {
} }
break; break;
case R.id.incall_answer: case R.id.incall_answer:
incall_answer.setVisibility(View.GONE); // incall_answer.setVisibility(View.GONE);
SipEngine.getInstance().answer(callid); // SipEngine.getInstance().answer(callid);
SipEngine.getInstance().StopdefaultCallMediaPlayer(this); // SipEngine.getInstance().StopdefaultCallMediaPlayer(ringtone);
// ringtone = null;
answer();
break; break;
} }
} }
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) { public void ShowVideoView(boolean show) {
if (show) { if (show) {

View File

@@ -7,6 +7,7 @@ import android.content.Context;
import android.content.DialogInterface; import android.content.DialogInterface;
import android.content.Intent; import android.content.Intent;
import android.graphics.Color; import android.graphics.Color;
import android.media.Ringtone;
import android.os.Bundle; import android.os.Bundle;
import android.os.Handler; import android.os.Handler;
import android.os.Message; import android.os.Message;
@@ -85,6 +86,8 @@ public class InCallMeetingActivity extends TrBaseActivity implements OnClickList
private boolean selfCall = false; private boolean selfCall = false;
private boolean VIDEOSTATE = false; private boolean VIDEOSTATE = false;
public static Intent incallIntent; public static Intent incallIntent;
private Ringtone ringtone;
private boolean isinited = false; private boolean isinited = false;
@@ -512,6 +515,7 @@ public class InCallMeetingActivity extends TrBaseActivity implements OnClickList
incall_answer.setVisibility(View.VISIBLE); incall_answer.setVisibility(View.VISIBLE);
incall_mute.setVisibility(View.GONE); incall_mute.setVisibility(View.GONE);
incall_muteVideo.setVisibility(View.GONE); incall_muteVideo.setVisibility(View.GONE);
ringtone = SipEngine.getInstance().PlaydefaultCallMediaPlayer(this);
} else { } else {
incall_answer.setVisibility(View.GONE); incall_answer.setVisibility(View.GONE);
if (DBUser.mySelf != null && DBUser.mySelf.isManager) { if (DBUser.mySelf != null && DBUser.mySelf.isManager) {
@@ -525,15 +529,28 @@ public class InCallMeetingActivity extends TrBaseActivity implements OnClickList
} }
show.setText(callnumber + callstate); show.setText(callnumber + callstate);
//控件显示号码,来电,去电,通话中... //控件显示号码,来电,去电,通话中...
if (incall_answer.getVisibility() == View.VISIBLE && selfCall) { if (incall_answer.getVisibility() == View.VISIBLE ) {
incall_answer.setVisibility(View.GONE); if(selfCall) {
SipEngine.getInstance().StopdefaultCallMediaPlayer(this); // incall_answer.setVisibility(View.GONE);
SipEngine.getInstance().answer(callid); // SipEngine.getInstance().answer(callid);
// SipEngine.getInstance().StopdefaultCallMediaPlayer(ringtone);
// ringtone = null;
answer();
} else { } else {
SipEngine.getInstance().PlaydefaultCallMediaPlayer(this); AutoAnwser();
}
} }
} }
static void AutoAnwser() {
handler_CallActivity.postDelayed(doAutoAnwser, 5000);
}
static Runnable doAutoAnwser = new Runnable() {
@Override
public void run() {
CONS.SENDMESSAGETO(handler_CallActivity, -2, null);
}
};
@Override @Override
protected void onPause() { protected void onPause() {
@@ -545,8 +562,11 @@ public class InCallMeetingActivity extends TrBaseActivity implements OnClickList
protected void onDestroy() { protected void onDestroy() {
stopVideoStream(true); stopVideoStream(true);
super.onDestroy(); super.onDestroy();
SipEngine.getInstance().StopdefaultCallMediaPlayer(ringtone);
ringtone = null;
SipEngine.getInstance().hangup(callid); SipEngine.getInstance().hangup(callid);
handler_CallActivity.removeCallbacks(getMemberRunner); handler_CallActivity.removeCallbacks(getMemberRunner);
handler_CallActivity.removeCallbacks(doAutoAnwser);
handler_CallActivity = null; handler_CallActivity = null;
if (wakeLock != null) { if (wakeLock != null) {
wakeLock.release(); wakeLock.release();
@@ -621,6 +641,9 @@ public class InCallMeetingActivity extends TrBaseActivity implements OnClickList
case -1: case -1:
getMembers(); getMembers();
break; break;
case -2:
answer();
break;
} }
return true; return true;
} }
@@ -685,12 +708,7 @@ public class InCallMeetingActivity extends TrBaseActivity implements OnClickList
} }
break; break;
case R.id.incall_answer: case R.id.incall_answer:
incall_answer.setVisibility(View.GONE); answer();
if (DBUser.mySelf != null && DBUser.mySelf.isManager) {
incall_mute.setVisibility(View.VISIBLE);
}
SipEngine.getInstance().answer(callid);
SipEngine.getInstance().StopdefaultCallMediaPlayer(this);
break; break;
case R.id.incall_mute: case R.id.incall_mute:
muteAll(v); muteAll(v);
@@ -700,6 +718,16 @@ public class InCallMeetingActivity extends TrBaseActivity implements OnClickList
break; break;
} }
} }
public void answer() {
incall_answer.setVisibility(View.GONE);
if (DBUser.mySelf != null && DBUser.mySelf.isManager) {
incall_mute.setVisibility(View.VISIBLE);
}
SipEngine.getInstance().answer(callid);
SipEngine.getInstance().StopdefaultCallMediaPlayer(ringtone);
ringtone = null;
handler_CallActivity.removeCallbacks(doAutoAnwser);
}
public void muteAll(View view) { public void muteAll(View view) {
QMUIQuickAction qa = QMUIPopups.quickAction(InCallMeetingActivity.this, QMUIQuickAction qa = QMUIPopups.quickAction(InCallMeetingActivity.this,