From 685a971c4049f24184423adfddb24a68b3afc0aa Mon Sep 17 00:00:00 2001 From: lss <lsc@hdlchina.com.cn> Date: 星期三, 15 六月 2022 13:54:03 +0800 Subject: [PATCH] 2022-6-15 --- HDLLinphoneSDKDemoNew/HDLLinphoneSDK/src/main/java/com/hdl/hdllinphonesdk/core/service/HDLLinphoneService.java | 77 +++++++++++++++++++++++++------------- 1 files changed, 50 insertions(+), 27 deletions(-) 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 54d633a..6462798 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 @@ -18,6 +18,8 @@ import com.hdl.hdllinphonesdk.R; +import com.hdl.hdllinphonesdk.activity.HDLLinphoneIntercomActivity; +import com.hdl.hdllinphonesdk.activity.HDLLinphoneReverseCallActivity; import com.hdl.hdllinphonesdk.core.callback.PhoneCallback; import com.hdl.hdllinphonesdk.core.callback.RegistrationCallback; import com.hdl.hdllinphonesdk.core.linphone.KeepAliveHandler; @@ -76,12 +78,11 @@ } public static Core getCore() { - if(sInstance == null){ + if (sInstance == null) { return null; } return sInstance.mCore; } - @Override public IBinder onBind(Intent intent) { @@ -90,11 +91,13 @@ /** * 娣诲姞閫氳瘽鐘舵�佸洖璋� + * * @param phoneCallback */ public static void addPhoneCallback(PhoneCallback phoneCallback) { sPhoneCallback = phoneCallback; } + public static void removePhoneCallback() { if (sPhoneCallback != null) { sPhoneCallback = null; @@ -103,11 +106,13 @@ /** * 娣诲姞娉ㄥ唽鐘舵�佸洖璋� + * * @param registrationCallback */ public static void addRegistrationCallback(RegistrationCallback registrationCallback) { sRegistrationCallback = registrationCallback; } + public static void removeRegistrationCallback() { if (sRegistrationCallback != null) { sRegistrationCallback = null; @@ -154,15 +159,11 @@ new TimerTask() { @Override public void run() { - mHandler.post( - new Runnable() { - @Override - public void run() { - if (mCore != null) { - mCore.iterate(); - } - } - }); + mHandler.post(() -> { + if (mCore != null) { + mCore.iterate(); + } + }); } }; mTimer = new Timer("Linphone scheduler"); @@ -175,12 +176,18 @@ public void onDestroy() { removeAllCallback(); logout(); - mCore.removeListener(mCoreListener); - mTimer.cancel(); - mCore.stop(); - // A stopped Core can be started again - // To ensure resources are freed, we must ensure it will be garbage collected - mCore = null; + + if (mTimer != null) { + mTimer.cancel(); + } + + if (mCore != null) { + mCore.removeListener(mCoreListener); + mCore.stop(); + // A stopped Core can be started again + // To ensure resources are freed, we must ensure it will be garbage collected + mCore = null; + } // Don't forget to free the singleton as well sInstance = null; @@ -216,8 +223,8 @@ initCoreListener(); copyAssetsFromPackage(basePath); // Create the Core and add our listener - mCore = Factory.instance() - .createCore(basePath + "/.linphonerc", basePath + "/linphonerc", this); + mCore = Factory.instance().createCore(basePath + "/.linphonerc", + basePath + "/linphonerc", this); mCore.addListener(mCoreListener); // Core is ready to be configured configureCore(); @@ -231,6 +238,7 @@ @Override public void onCallStateChanged(Core core, Call linphoneCall, Call.State state, String message) { HDLLog.e(START_LINPHONE_LOGS, "callState: " + state.toString()); + HDLLog.e(START_LINPHONE_LOGS, "state.toInt()=" + state.toInt() + "==============message=========: " + message); currentCallState = state; if (sPhoneCallback != null) { if (state == Call.State.IncomingReceived) { @@ -240,7 +248,7 @@ } else if (state == Call.State.Connected) { sPhoneCallback.callConnected(); } else if (state == Call.State.Error) { - sPhoneCallback.error(); + sPhoneCallback.error(message); } else if (state == Call.State.End) { sPhoneCallback.callEnd(); } else if (state == Call.State.Released) { @@ -255,11 +263,11 @@ HDLLog.i(START_LINPHONE_LOGS, "registrationState: " + state); if (state.equals(RegistrationState.None.toString())) { - if (sRegistrationCallback != null){ + if (sRegistrationCallback != null) { sRegistrationCallback.registrationNone(); } } else if (state.equals(RegistrationState.Progress.toString())) { - if (sRegistrationCallback != null){ + if (sRegistrationCallback != null) { sRegistrationCallback.registrationProgress(); } } else if (state.equals(RegistrationState.Ok.toString())) { @@ -282,6 +290,7 @@ /** * 鏀跺埌娉ㄩ攢鎴愬姛鍚庣Щ闄ゅ綋鍓嶄唬鐞� + * * @param core * @param proxyConfig */ @@ -312,7 +321,8 @@ } //1.璁剧疆瀛樺偍鐢ㄦ埛x509璇佷功鐨勭洰褰曠殑璺緞 - mCore.setUserCertificatesPath(userCerts); + //mCore.setUserCertificatesPath(userCerts); + mCore.setUserCertificatesPath(basePath); //2.璁剧疆UserAgent setUserAgent(); //3.璁剧疆鎾斁閾冨0 @@ -326,17 +336,16 @@ // mCore.setNetworkReachable(true); //5.鍥炲0娑堥櫎 mCore.enableEchoCancellation(true); - mCore.enableEchoLimiter(true); +// mCore.enableEchoLimiter(false); mCore.enableMic(true);//鍚敤楹﹀厠椋� //6.鑷�傚簲鐮佺巼鎺у埗 mCore.enableAdaptiveRateControl(true); //7.audio 鐮佺巼璁剧疆 -// mCore.getConfig().setInt("audio", "codec_bitrate_limit", 36); + mCore.getConfig().setInt("audio", "codec_bitrate_limit", 36); //8.瑙嗛鐩稿叧璁剧疆 mCore.setVideoPreset("custom");//瑙嗛棰勮涓篶ustom mCore.setPreferredFramerate(5);//FPS浼樺厛璁剧疆涓�5 - VideoDefinition preferredVideoDefinition = - Factory.instance().createVideoDefinitionFromName("qvga"); + VideoDefinition preferredVideoDefinition = Factory.instance().createVideoDefinitionFromName("qvga"); mCore.setPreferredVideoDefinition(preferredVideoDefinition);//瑙嗛灏哄鍋忓ソ榛樿qvga //9.璁剧疆甯﹀闄愬埗锛屽甫瀹藉崟浣嶄负kbits/s, 0琛ㄧず鏃犻檺 // mCore.setUploadBandwidth(1536); @@ -347,6 +356,9 @@ mCore.setVideoActivationPolicy(vap); //11.璁剧疆缂栫爜鏍煎紡 setCodecMime(); + + // 鍏ㄨ閫歴ip璁剧疆ca璇佷功 + //mCore.setRootCa(basePath + "/rootca.pem"); } /** @@ -375,6 +387,7 @@ /** * 璁剧疆鏄惁鍚敤閾冨0锛岀洰鍓嶅彂鐜拌缃棤鏁堝緟鍒嗘瀽鍘熷洜 + * * @param use */ public void enableDeviceRingtone(boolean use) { @@ -454,6 +467,12 @@ // mPauseSoundFile = basePath + "/toy_mono.wav"; // copyIfNotExist(R.raw.toy_mono, basePath + "/toy_mono.wav"); +// String mRootca = basePath + "/rootca.pem"; // 2022-05-23 瀵规帴鍏ㄨ閫氬彲瑙嗗璁叉坊鍔犵殑璇佷功 +// copyIfNotExist(R.raw.freeview_rootca, mRootca); + + String mLPConfigXsd = basePath + "/lpconfig.xsd"; + copyIfNotExist(R.raw.lpconfig, mLPConfigXsd); + } catch (IOException ioe) { Log.e(ioe); } @@ -462,6 +481,7 @@ /** * copyIfNotExist + * * @param ressourceId * @param target * @throws IOException @@ -475,6 +495,7 @@ /** * copyFromPackage + * * @param ressourceId * @param target * @throws IOException @@ -524,12 +545,14 @@ //閫氱煡ID public static final int NOTIFICATION_ID = 2; + /** * 瑙e喅android8.0浠ヤ笂鏃犳硶鍚姩鏈嶅姟鐨勯棶棰� */ void hdlStartForeground() { } + /** * stopForeground */ -- Gitblit v1.8.0