From 3b28584e4c875c5202253b04df457e017398d963 Mon Sep 17 00:00:00 2001 From: chenbin <> Date: Thu, 6 May 2021 17:28:15 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=8D=E5=B8=A6=E8=87=AA=E5=8A=A8=E6=8E=A5?= =?UTF-8?q?=E5=90=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/tianrun/sipcall/SipEngine.java | 14 +++++++++----- .../com/tianrun/sipcall/call/InCallActivity.java | 13 +++++++++---- .../sipcall/call/InCallMeetingActivity.java | 14 ++++++++++---- 3 files changed, 28 insertions(+), 13 deletions(-) diff --git a/app/src/main/java/com/tianrun/sipcall/SipEngine.java b/app/src/main/java/com/tianrun/sipcall/SipEngine.java index 1dfdb81..fa41607 100644 --- a/app/src/main/java/com/tianrun/sipcall/SipEngine.java +++ b/app/src/main/java/com/tianrun/sipcall/SipEngine.java @@ -336,14 +336,18 @@ public class SipEngine implements BluetelInterface { * * @throws Exception */ - public void PlaydefaultCallMediaPlayer(Context context) { + public Ringtone PlaydefaultCallMediaPlayer(Context context) { Uri notification = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE); Ringtone r = RingtoneManager.getRingtone(context, notification); r.play(); + return r; } - public void StopdefaultCallMediaPlayer(Context context) { - Uri notification = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE); - Ringtone r = RingtoneManager.getRingtone(context, notification); - r.stop(); + public void StopdefaultCallMediaPlayer(Ringtone r) { +// Uri notification = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE); +// Ringtone r = RingtoneManager.getRingtone(context, notification); +// r.stop(); + if(r != null) { + r.stop(); + } } } 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 4a9f095..839048a 100644 --- a/app/src/main/java/com/tianrun/sipcall/call/InCallActivity.java +++ b/app/src/main/java/com/tianrun/sipcall/call/InCallActivity.java @@ -6,6 +6,7 @@ import android.app.Activity; import android.app.KeyguardManager; import android.content.Context; import android.content.Intent; +import android.media.Ringtone; import android.os.Bundle; import android.os.Handler; import android.os.Message; @@ -63,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 = {"经典模式", "均分模式", "远程全屏", "本地全屏"}; @@ -186,6 +188,7 @@ 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); } @@ -193,9 +196,8 @@ public class InCallActivity extends TrBaseActivity implements OnClickListener { if (incall_answer.getVisibility() == View.VISIBLE && selfCall) { incall_answer.setVisibility(View.GONE); SipEngine.getInstance().answer(callid); - SipEngine.getInstance().StopdefaultCallMediaPlayer(this); - } else { - SipEngine.getInstance().PlaydefaultCallMediaPlayer(this); + SipEngine.getInstance().StopdefaultCallMediaPlayer(ringtone); + ringtone = null; } } @@ -210,6 +212,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 = null; if (wakeLock != null) { @@ -336,7 +340,8 @@ public class InCallActivity extends TrBaseActivity implements OnClickListener { case R.id.incall_answer: incall_answer.setVisibility(View.GONE); SipEngine.getInstance().answer(callid); - SipEngine.getInstance().StopdefaultCallMediaPlayer(this); + SipEngine.getInstance().StopdefaultCallMediaPlayer(ringtone); + ringtone = null; break; } } 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 a46038e..03ab22c 100644 --- a/app/src/main/java/com/tianrun/sipcall/call/InCallMeetingActivity.java +++ b/app/src/main/java/com/tianrun/sipcall/call/InCallMeetingActivity.java @@ -7,6 +7,7 @@ import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.graphics.Color; +import android.media.Ringtone; import android.os.Bundle; import android.os.Handler; import android.os.Message; @@ -85,6 +86,8 @@ 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; @@ -512,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,10 +531,9 @@ public class InCallMeetingActivity extends TrBaseActivity implements OnClickList //控件显示号码,来电,去电,通话中... if (incall_answer.getVisibility() == View.VISIBLE && selfCall) { incall_answer.setVisibility(View.GONE); - SipEngine.getInstance().StopdefaultCallMediaPlayer(this); SipEngine.getInstance().answer(callid); - } else { - SipEngine.getInstance().PlaydefaultCallMediaPlayer(this); + SipEngine.getInstance().StopdefaultCallMediaPlayer(ringtone); + ringtone = null; } } @@ -545,6 +548,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 = null; @@ -690,7 +695,8 @@ public class InCallMeetingActivity extends TrBaseActivity implements OnClickList incall_mute.setVisibility(View.VISIBLE); } SipEngine.getInstance().answer(callid); - SipEngine.getInstance().StopdefaultCallMediaPlayer(this); + SipEngine.getInstance().StopdefaultCallMediaPlayer(ringtone); + ringtone = null; break; case R.id.incall_mute: muteAll(v);