From c6a53572a83eaf4ad0d6193303e5acc4929b239f Mon Sep 17 00:00:00 2001 From: lmw <125975490@qq.com> Date: 星期三, 14 六月 2023 15:59:01 +0800 Subject: [PATCH] 录音 --- app/src/main/java/com/kuanzhai/driver/base/MyApplication.kt | 84 +++++++++++++++++++++++++++++++++++++++++ 1 files changed, 83 insertions(+), 1 deletions(-) diff --git a/app/src/main/java/com/kuanzhai/driver/base/MyApplication.kt b/app/src/main/java/com/kuanzhai/driver/base/MyApplication.kt index ec849cc..7aa0c08 100644 --- a/app/src/main/java/com/kuanzhai/driver/base/MyApplication.kt +++ b/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(){ @@ -88,6 +97,14 @@ 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?>() -- Gitblit v1.7.1