Commit d17f193b by 刘鹏

Merge branch 'feat/qj/handup_fix' into 'd/v4.0.57_xlzx'

上报处理与call fail处理

See merge request app_android_lib/YDL-Component!361
parents d5258e50 3406f215
...@@ -65,7 +65,7 @@ dependencies { ...@@ -65,7 +65,7 @@ dependencies {
kapt "com.alibaba:arouter-compiler:$arouter_compiler" kapt "com.alibaba:arouter-compiler:$arouter_compiler"
api "com.alibaba:arouter-api:$arouter_api" api "com.alibaba:arouter-api:$arouter_api"
api "com.ydl:ydl-av:1.4.8" api "com.ydl:ydl-av:1.4.9"
implementation 'com.volcengine:apm_insight:1.4.6.cn' implementation 'com.volcengine:apm_insight:1.4.6.cn'
api project(':ydl-platform') api project(':ydl-platform')
......
...@@ -341,7 +341,7 @@ class AudioHomeActivity : ...@@ -341,7 +341,7 @@ class AudioHomeActivity :
} }
Apm.reportEvent("agora_android", "occur_error", "$err") Apm.reportEvent("agora_android", "occur_error", "$err")
AudioApiRequestUtil.reportCallEvent(channelId, RtcEvent(RtcEvent.Event.errorOccurred), errorCode = err) AudioApiRequestUtil.reportCallEvent(channelId, RtcEvent(RtcEvent.Event.errorOccurred), errorCode = err)
channelId?.let { YDLavManager.instances.callEndStatusUpdate(it, 60, "频道错误回调$err") } // channelId?.let { YDLavManager.instances.callEndStatusUpdate(it, 60, "频道错误回调$err") }
} }
override fun onApiCallExecuted(error: Int, api: String?, result: String?) { override fun onApiCallExecuted(error: Int, api: String?, result: String?) {
......
...@@ -2,18 +2,14 @@ package com.ydl.audioim ...@@ -2,18 +2,14 @@ package com.ydl.audioim
import android.app.Activity import android.app.Activity
import android.content.Context import android.content.Context
import android.text.TextUtils
import android.view.View import android.view.View
import android.widget.ImageView import android.widget.ImageView
import android.widget.TextView import android.widget.TextView
import com.tencent.mmkv.MMKV
import com.ydl.audioim.http.AudioApiRequestUtil import com.ydl.audioim.http.AudioApiRequestUtil
import com.ydl.audioim.http.RtcEvent import com.ydl.audioim.http.RtcEvent
import com.ydl.consultantim.ConsultantAudioHomeActivity
import com.ydl.ydl_av.voice.listener.RtcNetInterface import com.ydl.ydl_av.voice.listener.RtcNetInterface
import com.ydl.ydl_av.voice.manager.YDLVoiceManager import com.ydl.ydl_av.voice.manager.YDLVoiceManager
import com.ydl.ydlcommon.utils.log.XLog import com.ydl.ydlcommon.utils.log.XLog
import io.agora.rtc.Constants
import io.reactivex.Single import io.reactivex.Single
import io.reactivex.schedulers.Schedulers import io.reactivex.schedulers.Schedulers
import java.io.File import java.io.File
...@@ -94,13 +90,13 @@ class NetQuality( ...@@ -94,13 +90,13 @@ class NetQuality(
override fun onRemoteAudioStateChanged(uid: Int, state: Int, reason: Int, elapsed: Int) { override fun onRemoteAudioStateChanged(uid: Int, state: Int, reason: Int, elapsed: Int) {
XLog.i("NetQuality", "uid:$uid,state:$state,reason:$reason,elapsed:$elapsed") XLog.i("NetQuality", "uid:$uid,state:$state,reason:$reason,elapsed:$elapsed")
if (reason == Constants.REMOTE_AUDIO_REASON_NETWORK_CONGESTION && state == Constants.REMOTE_AUDIO_STATE_FROZEN) { /*if (reason == Constants.REMOTE_AUDIO_REASON_NETWORK_CONGESTION && state == Constants.REMOTE_AUDIO_STATE_FROZEN) {
val qualityValue = MMKV.defaultMMKV().getString("network_quality_config", "0") val qualityValue = MMKV.defaultMMKV().getString("network_quality_config", "0")
if (TextUtils.equals(qualityValue, "1")) { if (TextUtils.equals(qualityValue, "1")) {
if (System.currentTimeMillis() - lastOnRemoteNetworkCongestion > 30 * 1000) { if (System.currentTimeMillis() - lastOnRemoteNetworkCongestion > 2 * 60 * 1000) {
lastOnRemoteNetworkCongestion = System.currentTimeMillis() lastOnRemoteNetworkCongestion = System.currentTimeMillis()
voiceManage?.getVoiceApi() voiceManage?.getVoiceApi()
?.playEffect(3001, getNetLowEffect(activity)) ?.playEffect(3001, getNetLowEffect(activity), 50.0)
} }
if (activity is AudioHomeActivity) { if (activity is AudioHomeActivity) {
activity.showNetStatus("对方的网络状况不佳", 0) activity.showNetStatus("对方的网络状况不佳", 0)
...@@ -108,7 +104,7 @@ class NetQuality( ...@@ -108,7 +104,7 @@ class NetQuality(
activity.showNetStatus("对方的网络状况不佳", 0) activity.showNetStatus("对方的网络状况不佳", 0)
} }
} }
} }*/
} }
override fun onRemoteAudioStats(quality: Int, delay: Int, bitrate: Int, audioLossRate: Int) { override fun onRemoteAudioStats(quality: Int, delay: Int, bitrate: Int, audioLossRate: Int) {
......
...@@ -184,20 +184,6 @@ class YDLavManager { ...@@ -184,20 +184,6 @@ class YDLavManager {
) )
onConfideEvent(dimension, response?.ChannelId) onConfideEvent(dimension, response?.ChannelId)
val act = ActivityManager.getInstance().getTopTaskActivity() val act = ActivityManager.getInstance().getTopTaskActivity()
//专家离线或者30 秒后仍未收到专家响应,重新再邀请一次
when (errorCode) {
//被叫不在线 呼叫邀请发出 30 秒后被叫仍未 ACK 响应呼叫邀请
RtmStatusCode.LocalInvitationError.LOCAL_INVITATION_ERR_PEER_OFFLINE, RtmStatusCode.LocalInvitationError.LOCAL_INVITATION_ERR_PEER_NO_RESPONSE -> {
if (act is AudioHomeActivity) {
act.runOnUiThread {
act.rtcCall()
}
}
}
RtmStatusCode.LocalInvitationError.LOCAL_INVITATION_ERR_INVITATION_EXPIRE -> {
//呼叫邀请过期。被叫 ACK 响应呼叫邀请后 60 秒呼叫邀请未被取消、接受、拒绝,则呼叫邀请过期。
}
}
//呼叫失败日志输出 //呼叫失败日志输出
if (act is AudioHomeActivity) { if (act is AudioHomeActivity) {
act.runOnUiThread { act.runOnUiThread {
......
...@@ -395,9 +395,11 @@ class ConsultantAudioHomeActivity : ...@@ -395,9 +395,11 @@ class ConsultantAudioHomeActivity :
//110:生成的 Token 无效 //110:生成的 Token 无效
//123:此用户被服务器禁止 //123:此用户被服务器禁止
runOnUiThread { runOnUiThread {
var report = false
when (err) { when (err) {
3, 7, 109, 110 -> { 3, 7, 109, 110 -> {
showToast("请退出应用,重新打开") showToast("请退出应用,重新打开")
report = true
close(RESULT_NOT_ANSWERED_CODE, "咨询师已挂断") close(RESULT_NOT_ANSWERED_CODE, "咨询师已挂断")
callEventSave( callEventSave(
"80", "80",
...@@ -408,17 +410,20 @@ class ConsultantAudioHomeActivity : ...@@ -408,17 +410,20 @@ class ConsultantAudioHomeActivity :
10 -> { 10 -> {
callEventSave("80", "err:${err} 专家网络较差") callEventSave("80", "err:${err} 专家网络较差")
showToast("当前网络较差,请更换网络") showToast("当前网络较差,请更换网络")
report = true
close(RESULT_NOT_ANSWERED_CODE, "专家网络较差") close(RESULT_NOT_ANSWERED_CODE, "专家网络较差")
} }
101 -> { 101 -> {
callEventSave("80", "err:${err} 不是有效的 APP ID") callEventSave("80", "err:${err} 不是有效的 APP ID")
showToast("安装包有问题,请联系技术") showToast("安装包有问题,请联系技术")
report = true
close(RESULT_NOT_ANSWERED_CODE, "安装包有问题,请联系技术") close(RESULT_NOT_ANSWERED_CODE, "安装包有问题,请联系技术")
} }
102 -> { 102 -> {
callEventSave("80", "err:${err} 不是有效的 频道名") callEventSave("80", "err:${err} 不是有效的 频道名")
showToast("频道错误,请联系技术") showToast("频道错误,请联系技术")
report = true
close(RESULT_NOT_ANSWERED_CODE, "频道错误,请联系技术") close(RESULT_NOT_ANSWERED_CODE, "频道错误,请联系技术")
} }
123 -> { 123 -> {
...@@ -433,6 +438,7 @@ class ConsultantAudioHomeActivity : ...@@ -433,6 +438,7 @@ class ConsultantAudioHomeActivity :
if (err == 0 || err == 18) { if (err == 0 || err == 18) {
return@runOnUiThread return@runOnUiThread
} }
if (report) {
YDLavManager.instances.callEndStatusUpdate( YDLavManager.instances.callEndStatusUpdate(
mAudioMessageBean?.channelId!!, mAudioMessageBean?.channelId!!,
60, 60,
...@@ -440,6 +446,7 @@ class ConsultantAudioHomeActivity : ...@@ -440,6 +446,7 @@ class ConsultantAudioHomeActivity :
) )
} }
} }
}
//本地音频状态监听 //本地音频状态监听
override fun onLocalAudioStateChanged(localVideoState: Int, error: Int) { override fun onLocalAudioStateChanged(localVideoState: Int, error: Int) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment