lmw
2023-06-25 a988e7c15f5ce63785b77e01c89bec2565668982
app/src/main/java/com/kuanzhai/driver/base/MyApplication.kt
@@ -8,6 +8,13 @@
import androidx.annotation.RequiresApi
import cn.jpush.android.api.JPushInterface
import cn.jpush.android.api.TagAliasCallback
import cn.rongcloud.rtc.api.RCRTCConfig
import cn.rongcloud.rtc.api.RCRTCEngine
import cn.rongcloud.rtc.api.RCRTCRoom
import cn.rongcloud.rtc.api.callback.IRCRTCResultCallback
import cn.rongcloud.rtc.api.callback.IRCRTCResultDataCallback
import cn.rongcloud.rtc.api.stream.RCRTCInputStream
import cn.rongcloud.rtc.base.RTCErrorCode
import cn.sinata.rxnetty.NettyClient
import cn.sinata.xldutils.BaseApplication
import cn.sinata.xldutils.utils.sysErr
@@ -37,6 +44,7 @@
import com.umeng.commonsdk.UMConfigure
import com.umeng.socialize.PlatformConfig
import com.xuexiang.xui.XUI
import io.rong.imlib.RongIMClient
import org.greenrobot.eventbus.EventBus
import org.jetbrains.anko.toast
import org.json.JSONObject
@@ -71,6 +79,7 @@
        registerActivityLifecycleCallbacks(this)
        initUpPoint()
        initSocket()
        initRong()
    }
    fun initPersionDate(){
@@ -81,13 +90,21 @@
            UMConfigure.DEVICE_TYPE_PHONE,
            ""
        )
        PlatformConfig.setWeixin("wxfba0dbf7c79c8593", "99ffb558cc6af57fd60703fb36e28829")
        PlatformConfig.setWeixin("wx60fea9cd239b6c3a", "47dda1fb8f7fac69700f6591565d7fd1")
        PlatformConfig.setQQZone("1105920536", "bx7zWrVgTskXHZTr") //qq互联
        JPushInterface.setDebugMode(true)
        JPushInterface.init(this)
        setAlisa()
        LogUtils.OpenLog(true)
//        CrashReport.initCrashReport(getApplicationContext(), "444bb776ed", false);
    }
    private fun initRong() {
        // IMLib 初始化
        RongIMClient.init(this, "0vnjpoad01rwz")
        // RTCLib 初始化
        val config = RCRTCConfig.Builder.create()
        RCRTCEngine.getInstance().init(this, config.build())
    }
    public fun setAlisa() {
@@ -193,7 +210,7 @@
                                    val act = activities[activities.size - 1]
//                                    MyApplication.getTTsManager().setVideoText("收到新的订单")
                                    when (orderSimpleData.orderType) {
                                        1,2 -> {
                                        1,2,10 -> {
                                            (act as MyBaseActivity).showOrder(
                                                orderSimpleData.orderId.toString(),
                                                orderSimpleData.orderType.toString(),
@@ -442,6 +459,7 @@
        var aMapLocation: AMapLocation? = null
        var currentOrderId: String = ""
        var currentOrderType: String = ""
        var recordRoomId: String = ""
        var orderStatueViews: MutableList<OrderStatueView> =
            mutableListOf()
        var testHeartNunm = 0
@@ -483,6 +501,70 @@
        fun removeOrderView(view: OrderStatueView?) {
            orderStatueViews.remove(view)
        }
        fun startRecord(){
            if (recordRoomId.isNotEmpty()){
                RCRTCEngine.getInstance()
                    .joinRoom(recordRoomId, object : IRCRTCResultDataCallback<RCRTCRoom?>() {
                        override fun onSuccess(rcrtcRoom: RCRTCRoom?) {
                            Log.e("RongLog", "开始录制======》当前房间号:${recordRoomId}")
//                            rcrtcRoom?.registerRoomListener(object :IRCRTCRoomEventsListener(){})
                            //step1:推流
                            rcrtcRoom?.localUser?.publishDefaultStreams(object :
                                IRCRTCResultCallback() {
                                override fun onSuccess() {
                                    Log.e("RongLog", "发布资源成功")
                                }
                                override fun onFailed(errorCode: RTCErrorCode) {
                                    Log.e("RongLog", "发布资源失败:${errorCode.reason}")
                                }
                            })
                            //step2:订阅远端
                            val inputStreams: MutableList<RCRTCInputStream> = ArrayList()
                            for (remoteUser in rcrtcRoom?.remoteUsers ?: arrayListOf()) {
                                if (remoteUser.streams.size == 0) {
                                    continue
                                }
                                inputStreams.addAll(remoteUser.streams)
                            }
                            if (inputStreams.size == 0) {
                                return
                            }
                            rcrtcRoom?.localUser?.subscribeStreams(
                                inputStreams,
                                object : IRCRTCResultCallback() {
                                    override fun onFailed(errorCode: RTCErrorCode?) {
                                        Log.e("RongLog", "订阅资源失败:${errorCode}")
                                    }
                                    override fun onSuccess() {
                                        Log.e("RongLog", "订阅资源成功")
                                    }
                                })
                        }
                        override fun onFailed(rtcErrorCode: RTCErrorCode) {
                            Log.e("RongLog", "录制失败======》${rtcErrorCode}")
                        }
                    })
            }
        }
        fun finishRecord(){
            RCRTCEngine.getInstance().leaveRoom(object : IRCRTCResultCallback() {
                override fun onFailed(errorCode: RTCErrorCode?) {
                    Log.e("RongLog", "结束录制失败")
                }
                override fun onSuccess() {
                    Log.e("RongLog", "结束录制成功")
                }
            })
        }
    }
    private val activities = ArrayList<Activity?>()