From 357b934aa50e51148d14ff238919868095a45afd Mon Sep 17 00:00:00 2001
From: JLChen <551775569@qq.com>
Date: 星期二, 24 八月 2021 10:15:17 +0800
Subject: [PATCH] 2021-08-24 1.呼叫页面增加震动提醒
---
HDLLinphoneSDKDemoNew/HDLLinphoneSDK/src/main/java/com/hdl/hdllinphonesdk/activity/HDLLinphoneIntercomActivity.java | 59 +++++++++++++++++++++++++++--
HDLLinphoneSDKDemoNew/HDLLinphoneSDK/src/main/AndroidManifest.xml | 2 +
Shared.Droid.HDLLinphone/Shared.Droid.HDLLinphone/Jars/HDLLinphoneSDK-V1.0.1.aar | 0
HDLLinphoneSDKDemoNew/app/libs/HDLLinphoneSDK-V1.0.1.aar | 0
HDLLinphoneSDKDemoNew/HDLLinphoneSDK/src/main/java/com/hdl/hdllinphonesdk/core/service/HDLLinphoneService.java | 35 ++++++++---------
5 files changed, 72 insertions(+), 24 deletions(-)
diff --git a/HDLLinphoneSDKDemoNew/HDLLinphoneSDK/src/main/AndroidManifest.xml b/HDLLinphoneSDKDemoNew/HDLLinphoneSDK/src/main/AndroidManifest.xml
index 701ff46..9d2a941 100644
--- a/HDLLinphoneSDKDemoNew/HDLLinphoneSDK/src/main/AndroidManifest.xml
+++ b/HDLLinphoneSDKDemoNew/HDLLinphoneSDK/src/main/AndroidManifest.xml
@@ -14,6 +14,8 @@
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
+ <uses-permission android:name="android.permission.VIBRATE" />
+
<uses-feature
android:name="android.hardware.camera"
android:required="false" />
diff --git a/HDLLinphoneSDKDemoNew/HDLLinphoneSDK/src/main/java/com/hdl/hdllinphonesdk/activity/HDLLinphoneIntercomActivity.java b/HDLLinphoneSDKDemoNew/HDLLinphoneSDK/src/main/java/com/hdl/hdllinphonesdk/activity/HDLLinphoneIntercomActivity.java
index f076514..397b8ce 100644
--- a/HDLLinphoneSDKDemoNew/HDLLinphoneSDK/src/main/java/com/hdl/hdllinphonesdk/activity/HDLLinphoneIntercomActivity.java
+++ b/HDLLinphoneSDKDemoNew/HDLLinphoneSDK/src/main/java/com/hdl/hdllinphonesdk/activity/HDLLinphoneIntercomActivity.java
@@ -5,9 +5,12 @@
import android.content.Intent;
import android.content.IntentFilter;
import android.graphics.Bitmap;
+import android.media.AudioAttributes;
+import android.os.Build;
import android.os.Bundle;
import android.os.CountDownTimer;
import android.os.SystemClock;
+import android.os.Vibrator;
import android.text.TextUtils;
import android.util.DisplayMetrics;
import android.util.Log;
@@ -60,11 +63,16 @@
//鍙傛暟
private boolean isAnswer;//鏄惁宸茬粡鎺ュ惉浜�
private int callTime;//閫氳瘽鏃堕棿
-
+ //鍊掕鏃�
private CountDownTimer mCountDownTimer;
+ /**
+ * 鎵嬫満鎸姩鍣�
+ */
+ private Vibrator mVibrator;
//Linphone
private CoreListenerStub mCoreListener;
+
@Override
protected void onCreate(Bundle savedInstanceState) {
@@ -79,6 +87,7 @@
initCallBack();
initCountDownTimer();
initLinphone();
+ initVibrator();
}
@@ -90,17 +99,20 @@
super.onDestroy();
//1.鎸傛柇
HDLLinphoneKit.getInstance().hangUp();
-
+ //2.鏆傚仠璁℃椂
if (null != timer_lp_calltime) {
timer_lp_calltime.stop();
}
-
+ //3.娉ㄩ攢callBack
HDLLinphoneKit.getInstance().setOpenOpenDoorCallBack(null);
-
+ //4.鍙栨秷闇囧姩鍣�
+ cancelVibrator();
+ //5.
if (mCountDownTimer != null) {
mCountDownTimer.cancel();
mCountDownTimer = null;
}
+ //5.
onDestroyLinphone();
HDLLog.i(TAG, "onDestroy");
@@ -127,6 +139,8 @@
timer_lp_calltime = (Chronometer) findViewById(R.id.timer_lp_calltime);
tv_lp_calltime = findViewById(R.id.tv_lp_calltime);
setWidthHeightWithRatio(ll_video_lp_rendering, 16, 9);
+
+
}
/**
@@ -286,6 +300,9 @@
private void onClickAnswer() {
//1.鎺ュ惉
HDLLinphoneKit.getInstance().acceptCall();
+ //2.鍙栨秷闇囧姩
+ cancelVibrator();
+ //3.淇敼UI
isAnswer = true;
tv_lp_hangUp.setText(getString(R.string.lp_hangupStr));
setViewGone(rl_lp_answerView);
@@ -389,7 +406,7 @@
/**
* onDestroyLinphone
*/
- void onDestroyLinphone(){
+ void onDestroyLinphone() {
Core core = HDLLinphoneKit.getInstance().getCore();
if (core != null) {
core.removeListener(mCoreListener);
@@ -401,4 +418,36 @@
}
+ /**
+ * 鍒濆鍖栭渿鍔ㄥ櫒
+ */
+ void initVibrator() {
+ mVibrator = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
+ if (mVibrator.hasVibrator()) {
+ long[] patern = {0, 1000, 1000};
+ AudioAttributes audioAttributes = null;
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
+ audioAttributes = new AudioAttributes.Builder()
+ .setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION)
+ .setUsage(AudioAttributes.USAGE_NOTIFICATION_RINGTONE) //key
+ .build();
+ mVibrator.vibrate(patern, 1, audioAttributes);
+ } else {
+ mVibrator.vibrate(patern, 1);
+ }
+ } else {
+ HDLLog.E("褰撳墠鎵嬫満娌℃湁闇囧姩鍣�");
+ }
+ }
+
+ /**
+ * 鍏抽棴闇囧姩鍣�
+ */
+ void cancelVibrator(){
+ if(mVibrator != null){
+ mVibrator.cancel();
+ mVibrator = null;
+ }
+
+ }
}
\ No newline at end of file
diff --git a/HDLLinphoneSDKDemoNew/HDLLinphoneSDK/src/main/java/com/hdl/hdllinphonesdk/core/service/HDLLinphoneService.java b/HDLLinphoneSDKDemoNew/HDLLinphoneSDK/src/main/java/com/hdl/hdllinphonesdk/core/service/HDLLinphoneService.java
index 8772ac9..04b9089 100644
--- a/HDLLinphoneSDKDemoNew/HDLLinphoneSDK/src/main/java/com/hdl/hdllinphonesdk/core/service/HDLLinphoneService.java
+++ b/HDLLinphoneSDKDemoNew/HDLLinphoneSDK/src/main/java/com/hdl/hdllinphonesdk/core/service/HDLLinphoneService.java
@@ -309,42 +309,39 @@
HDLLog.E(userCerts + " can't be created.");
}
}
- //璁剧疆UserAgent
- setUserAgent();
+ //1.璁剧疆瀛樺偍鐢ㄦ埛x509璇佷功鐨勭洰褰曠殑璺緞
mCore.setUserCertificatesPath(userCerts);
+ //2.璁剧疆UserAgent
+ setUserAgent();
// mCore.setNativeRingingEnabled(true);
// mCore.setRemoteRingbackTone(mRingSoundFile);
// mCore.setTone(ToneID.CallWaiting, mRingSoundFile);
- mCore.setRing(mRingSoundFile);
+// mCore.setRing(mRingSoundFile);
// mCore.setPlayFile(mPauseSoundFile);
// mCore.enableVideoCapture(false);//绂佺敤鎵嬫満鎽勫儚澶磋棰戦噰闆�
-
mCore.setNetworkReachable(true);
- //鍥炲0娑堥櫎
-// boolean isEchoCancellation = (boolean) SPUtils.get(mServiceContext, "echo_cancellation", true);
- //鍥炲0娑堥櫎
+ //3.鍥炲0娑堥櫎
mCore.enableEchoCancellation(true);
mCore.enableEchoLimiter(true);
-
- //鑷�傚簲鐮佺巼鎺у埗
+ //4.鑷�傚簲鐮佺巼鎺у埗
mCore.enableAdaptiveRateControl(true);
- //audio 鐮佺巼璁剧疆
+ //5.audio 鐮佺巼璁剧疆
mCore.getConfig().setInt("audio", "codec_bitrate_limit", 36);
-
+ //6.瑙嗛灏哄鍋忓ソ璁剧疆 榛樿qvga
VideoDefinition preferredVideoDefinition =
Factory.instance().createVideoDefinitionFromName("qvga");
mCore.setPreferredVideoDefinition(preferredVideoDefinition);
-
+ //7.璁剧疆甯﹀闄愬埗锛屽甫瀹藉崟浣嶄负kbits/s, 0琛ㄧず鏃犻檺
mCore.setUploadBandwidth(1536);
mCore.setDownloadBandwidth(1536);
-
+ //8.璁剧疆鍚敤H264缂栫爜
mCore.getConfig().setBool("app", "open_h264_download_enabled", true);
+ //9.璁剧疆瑙嗛鐨勯粯璁ょ瓥鐣�
VideoActivationPolicy vap = mCore.getVideoActivationPolicy();
vap.setAutomaticallyInitiate(true);
mCore.setVideoActivationPolicy(vap);
-
- // 璁剧疆缂栫爜鏍煎紡
+ //10.璁剧疆缂栫爜鏍煎紡
setCodecMime();
}
@@ -448,10 +445,10 @@
// The factory config is used to override any other setting, let's copy it each time
copyFromPackage(R.raw.linphonerc_factory, "linphonerc");
mRingSoundFile = basePath + "/oldphone_mono.wav";
- copyIfNotExist(R.raw.oldphone_mono, basePath + "/oldphone_mono.wav");
- copyIfNotExist(R.raw.ringback, basePath + "/ringback.wav");
- mPauseSoundFile = basePath + "/toy_mono.wav";
- copyIfNotExist(R.raw.toy_mono, basePath + "/toy_mono.wav");
+ copyIfNotExist(R.raw.oldphone_mono, mRingSoundFile);
+// copyIfNotExist(R.raw.ringback, basePath + "/ringback.wav");
+// mPauseSoundFile = basePath + "/toy_mono.wav";
+// copyIfNotExist(R.raw.toy_mono, basePath + "/toy_mono.wav");
} catch (IOException ioe) {
Log.e(ioe);
diff --git a/HDLLinphoneSDKDemoNew/app/libs/HDLLinphoneSDK-V1.0.1.aar b/HDLLinphoneSDKDemoNew/app/libs/HDLLinphoneSDK-V1.0.1.aar
index db2629a..9092e85 100644
--- a/HDLLinphoneSDKDemoNew/app/libs/HDLLinphoneSDK-V1.0.1.aar
+++ b/HDLLinphoneSDKDemoNew/app/libs/HDLLinphoneSDK-V1.0.1.aar
Binary files differ
diff --git a/Shared.Droid.HDLLinphone/Shared.Droid.HDLLinphone/Jars/HDLLinphoneSDK-V1.0.1.aar b/Shared.Droid.HDLLinphone/Shared.Droid.HDLLinphone/Jars/HDLLinphoneSDK-V1.0.1.aar
index db2629a..9092e85 100644
--- a/Shared.Droid.HDLLinphone/Shared.Droid.HDLLinphone/Jars/HDLLinphoneSDK-V1.0.1.aar
+++ b/Shared.Droid.HDLLinphone/Shared.Droid.HDLLinphone/Jars/HDLLinphoneSDK-V1.0.1.aar
Binary files differ
--
Gitblit v1.8.0