From daca4f973aeda5b816f0160eb121c5f3c7a6e66c Mon Sep 17 00:00:00 2001 From: JLChen <551775569@qq.com> Date: 星期三, 01 九月 2021 15:40:49 +0800 Subject: [PATCH] 2021-09-01 1.监视页面禁用麦克风 --- HDLLinphoneSDKDemoNew/HDLLinphoneSDK/src/main/java/com/hdl/hdllinphonesdk/activity/HDLLinphoneMonitorActivity.java | 63 +++++++++++++++++++++++-------- 1 files changed, 46 insertions(+), 17 deletions(-) diff --git a/HDLLinphoneSDKDemoNew/HDLLinphoneSDK/src/main/java/com/hdl/hdllinphonesdk/activity/HDLLinphoneMonitorActivity.java b/HDLLinphoneSDKDemoNew/HDLLinphoneSDK/src/main/java/com/hdl/hdllinphonesdk/activity/HDLLinphoneMonitorActivity.java index a5c8cb3..cc91875 100644 --- a/HDLLinphoneSDKDemoNew/HDLLinphoneSDK/src/main/java/com/hdl/hdllinphonesdk/activity/HDLLinphoneMonitorActivity.java +++ b/HDLLinphoneSDKDemoNew/HDLLinphoneSDK/src/main/java/com/hdl/hdllinphonesdk/activity/HDLLinphoneMonitorActivity.java @@ -27,6 +27,10 @@ import com.hdl.hdllinphonesdk.utils.HDLImageUtils; import com.hdl.hdllinphonesdk.utils.HDLLog; +import org.linphone.core.Call; +import org.linphone.core.Core; +import org.linphone.core.CoreListenerStub; + /** *鐩戣椤甸潰 */ @@ -47,6 +51,9 @@ private TextureView video_lp_rendering2; private CountDownTimer mCountDownTimer; + + //Linphone + private CoreListenerStub mCoreListener; @Override protected void onCreate(Bundle savedInstanceState) { @@ -71,6 +78,8 @@ @Override protected void onDestroy() { super.onDestroy(); + //1.鎸傛柇 + HDLLinphoneKit.getInstance().hangUp(); HDLLinphoneKit.getInstance().setOpenOpenDoorCallBack(null); @@ -79,10 +88,7 @@ mCountDownTimer = null; } - if (mReceiver != null) { - unregisterReceiver(mReceiver); - } - HDLLinphoneKit.getInstance().onDestroy(); + onDestroyLinphone(); HDLLog.i(TAG,"onDestroy"); @@ -287,23 +293,46 @@ } /**********LinPhone**********/ - void initLinphone(){ - IntentFilter intentFilter = new IntentFilter(RECEIVE_FINISH_VIDEO_ACTIVITY); - mReceiver = new HDLLinphoneMonitorActivity.FinishVideoActivityReceiver(); - registerReceiver(mReceiver, intentFilter); - HDLLinphoneKit.getInstance().setAndroidVideoWindow(video_lp_rendering, video_lp_rendering2); + /** + * initLinphone + */ + void initLinphone() { + mCoreListener = new CoreListenerStub() { + @Override + public void onCallStateChanged(Core core, Call call, Call.State state, String message) { + if (state == Call.State.End || state == Call.State.Released) { + // Once call is finished (end state), terminate the activity + // We also check for released state (called a few seconds later) just in case + // we missed the first one + showToast(getString(R.string.lp_endMonitoringStr)); + finish(); + } + } + }; + + Core core = HDLLinphoneKit.getInstance().getCore(); + // We need to tell the core in which to display what + if (core != null) { + core.setNativeVideoWindowId(video_lp_rendering); + core.setNativePreviewWindowId(video_lp_rendering2); + // Listen for call state changes + core.addListener(mCoreListener); + core.enableMic(false);//鍏抽棴楹﹀厠椋� + } + } /** - * 椤甸潰鍏抽棴骞挎挱鐩戝惉 + * onDestroyLinphone */ - public class FinishVideoActivityReceiver extends BroadcastReceiver { - @Override - public void onReceive(Context context, Intent intent) { - HDLLinphoneMonitorActivity.this.finish(); + void onDestroyLinphone(){ + Core core = HDLLinphoneKit.getInstance().getCore(); + if (core != null) { + core.removeListener(mCoreListener); + core.setNativeVideoWindowId(null); + core.setNativePreviewWindowId(null); } + video_lp_rendering = null; + video_lp_rendering2 = null; } - private HDLLinphoneMonitorActivity.FinishVideoActivityReceiver mReceiver; - public static final String RECEIVE_FINISH_VIDEO_ACTIVITY = "receive_finish_video_activity"; - } \ No newline at end of file -- Gitblit v1.8.0