lss
2022-06-28 ec33080ccafdec563688ed794eff0a3b35a3feec
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();
    }
@@ -88,17 +97,22 @@
    @Override
    protected void onDestroy() {
        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");
@@ -246,7 +260,6 @@
        }
    }
    /**
     * 开锁点击事件
     */
@@ -284,6 +297,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);
@@ -381,13 +397,15 @@
            core.setNativePreviewWindowId(video_lp_rendering2);
            // Listen for call state changes
            core.addListener(mCoreListener);
            core.enableMic(true);//开启麦克风
        }
    }
    /**
     * onDestroyLinphone
     */
    void onDestroyLinphone(){
    void onDestroyLinphone() {
        Core core = HDLLinphoneKit.getInstance().getCore();
        if (core != null) {
            core.removeListener(mCoreListener);
@@ -398,5 +416,36 @@
        video_lp_rendering2 = null;
    }
    /**
     * 初始化震动器
     */
    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;
        }
    }
}