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