This commit is contained in:
chenbin
2021-05-06 16:07:22 +08:00
parent de8bf0b61c
commit eb6c7ddab8
3 changed files with 70 additions and 24 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(); // r.stop();
if(r != null) {
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;
@@ -50,6 +51,7 @@ public class InCallActivity extends TrBaseActivity implements OnClickListener {
private SMPercentFrameLayout localRenderLayout; private SMPercentFrameLayout localRenderLayout;
private SMPercentFrameLayout remoteRenderLayout; private SMPercentFrameLayout remoteRenderLayout;
private ImageButton incall_answer, incall_hangup; private ImageButton incall_answer, incall_hangup;
private Ringtone ringtone;
private TextView show; private TextView show;
QMUITabSegment mTabSegment; QMUITabSegment mTabSegment;
ViewPager mContentViewPager; ViewPager mContentViewPager;
@@ -191,15 +193,22 @@ public class InCallActivity extends TrBaseActivity implements OnClickListener {
} }
show.setText(callnumber + callstate); show.setText(callnumber + callstate);
if (incall_answer.getVisibility() == View.VISIBLE && selfCall) { if (incall_answer.getVisibility() == View.VISIBLE && selfCall) {
incall_answer.setVisibility(View.GONE); answer();
SipEngine.getInstance().answer(callid);
SipEngine.getInstance().StopdefaultCallMediaPlayer(this);
} else { } else {
SipEngine.getInstance().PlaydefaultCallMediaPlayer(this); ringtone = SipEngine.getInstance().PlaydefaultCallMediaPlayer(this);
AutoAnwser(); //5秒后自动接听
} }
} }
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();
@@ -211,11 +220,14 @@ public class InCallActivity extends TrBaseActivity implements OnClickListener {
stopVideoStream(true); stopVideoStream(true);
super.onDestroy(); super.onDestroy();
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();
wakeLock = null; wakeLock = null;
} }
SipEngine.getInstance().StopdefaultCallMediaPlayer(ringtone);
ringtone = null;
} }
/** /**
@@ -275,6 +287,9 @@ public class InCallActivity extends TrBaseActivity implements OnClickListener {
stopVideoStream(true); stopVideoStream(true);
finish(); finish();
break; break;
case -2:
answer();
break;
} }
return true; return true;
} }
@@ -332,15 +347,20 @@ public class InCallActivity extends TrBaseActivity implements OnClickListener {
if (SipEngine.callPagesConfig.size() == 0) { if (SipEngine.callPagesConfig.size() == 0) {
finish(); finish();
} }
SipEngine.getInstance().StopdefaultCallMediaPlayer(ringtone);
break; break;
case R.id.incall_answer: case R.id.incall_answer:
incall_answer.setVisibility(View.GONE); answer();
SipEngine.getInstance().answer(callid);
SipEngine.getInstance().StopdefaultCallMediaPlayer(this);
break; break;
} }
} }
public void answer(){
incall_answer.setVisibility(View.GONE);
SipEngine.getInstance().answer(callid);
SipEngine.getInstance().StopdefaultCallMediaPlayer(ringtone);
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;
@@ -87,6 +88,7 @@ public class InCallMeetingActivity extends TrBaseActivity implements OnClickList
public static Intent incallIntent; public static Intent incallIntent;
private boolean isinited = false; private boolean isinited = false;
private Ringtone ringtone;
TrAdapter adapterUser; TrAdapter adapterUser;
@@ -526,15 +528,23 @@ 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 && selfCall) {
incall_answer.setVisibility(View.GONE); answer();
SipEngine.getInstance().StopdefaultCallMediaPlayer(this);
SipEngine.getInstance().answer(callid);
} else { } else {
SipEngine.getInstance().PlaydefaultCallMediaPlayer(this); ringtone = SipEngine.getInstance().PlaydefaultCallMediaPlayer(this);
AutoAnwser(); //5秒后自动接听
} }
} }
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();
@@ -547,12 +557,15 @@ public class InCallMeetingActivity extends TrBaseActivity implements OnClickList
super.onDestroy(); super.onDestroy();
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();
wakeLock = null; wakeLock = null;
} }
SipEngine.getInstance().StopdefaultCallMediaPlayer(ringtone);
ringtone = null;
} }
/** /**
@@ -621,6 +634,9 @@ public class InCallMeetingActivity extends TrBaseActivity implements OnClickList
case -1: case -1:
getMembers(); getMembers();
break; break;
case -2:
answer();
break;
} }
return true; return true;
} }
@@ -683,14 +699,10 @@ public class InCallMeetingActivity extends TrBaseActivity implements OnClickList
if (SipEngine.callPagesConfig.size() == 0) { if (SipEngine.callPagesConfig.size() == 0) {
finish(); finish();
} }
SipEngine.getInstance().StopdefaultCallMediaPlayer(ringtone);
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);
@@ -701,6 +713,16 @@ public class InCallMeetingActivity extends TrBaseActivity implements OnClickList
} }
} }
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);
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,
QMUIDisplayHelper.dp2px(InCallMeetingActivity.this, 56), QMUIDisplayHelper.dp2px(InCallMeetingActivity.this, 56),