修复测试反馈问题

This commit is contained in:
2023-10-30 18:25:16 +08:00
parent f36c4706e4
commit 9aa8b22d99
40 changed files with 694 additions and 206 deletions

View File

@@ -23,6 +23,7 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Timer;
import java.util.TimerTask;
@@ -49,7 +50,7 @@ public class CallClientManager {
public static final String AUDIO_FLOAT = "audioFloatWindow";//浮窗
private static CallClientManager manager;
private SurfaceView localVideo, remoteVideo;
private List<OnCallStatusListener> listeners;
private Map<Class,OnCallStatusListener> listeners;
private CallTimeTask timeTask = null;
public static CallClientManager getManager() {
@@ -60,7 +61,7 @@ public class CallClientManager {
}
private CallClientManager() {
listeners = new ArrayList<>();
listeners = new HashMap<>();
init();
}
@@ -83,19 +84,19 @@ public class CallClientManager {
RongCallClient.setReceivedCallListener(new CallMeListener());
}
public void addOnVoIPCallListener(OnCallStatusListener statusListener) {
listeners.add(statusListener);
public void addOnVoIPCallListener(Class zlass,OnCallStatusListener statusListener) {
listeners.put(zlass,statusListener);
RongCallClient.getInstance().setVoIPCallListener(new CallStatusListener(new OnCallStatusListener() {
@Override
public void onCallWait(SurfaceView localVideo) {
for (OnCallStatusListener listener : listeners) {
for (OnCallStatusListener listener : listeners.values()) {
listener.onCallWait(localVideo);
}
}
@Override
public void onCallStart(String userId, SurfaceView remoteVideo) {
for (OnCallStatusListener listener : listeners) {
for (OnCallStatusListener listener : listeners.values()) {
listener.onCallStart(userId, remoteVideo);
}
startTimer(null);
@@ -103,7 +104,7 @@ public class CallClientManager {
@Override
public void onCallEnd() {
for (OnCallStatusListener listener : listeners) {
for (OnCallStatusListener listener : listeners.values()) {
listener.onCallEnd();
}
endTimer();
@@ -111,15 +112,15 @@ public class CallClientManager {
@Override
public void onStartFirstFrame() {
for (OnCallStatusListener listener : listeners) {
for (OnCallStatusListener listener : listeners.values()) {
listener.onStartFirstFrame();
}
}
}));
}
public void removeOnVoIPCallListener(OnCallStatusListener statusListener) {
listeners.remove(statusListener);
public void removeOnVoIPCallListener(Class zlass) {
listeners.remove(zlass);
}
public void checkMoney(String targetId, boolean video, OnSendMessageListener listener) {
@@ -149,24 +150,22 @@ public class CallClientManager {
RongCallClient.getInstance().setVoIPCallListener(new CallStatusListener(new OnCallStatusListener() {
@Override
public void onCallWait(SurfaceView localVideo) {
for (OnCallStatusListener listener : listeners) {
for (OnCallStatusListener listener : listeners.values()) {
listener.onCallWait(localVideo);
}
ToastUtil.show(R.string.call_tips1);
}
@Override
public void onCallStart(String userId, SurfaceView remoteVideo) {
for (OnCallStatusListener listener : listeners) {
for (OnCallStatusListener listener : listeners.values()) {
listener.onCallStart(userId, remoteVideo);
}
ToastUtil.show(R.string.call_tips2);
startTimer(targetId);
}
@Override
public void onCallEnd() {
for (OnCallStatusListener listener : listeners) {
for (OnCallStatusListener listener : listeners.values()) {
listener.onCallEnd();
}
endTimer();
@@ -174,7 +173,7 @@ public class CallClientManager {
@Override
public void onStartFirstFrame() {
for (OnCallStatusListener listener : listeners) {
for (OnCallStatusListener listener : listeners.values()) {
listener.onStartFirstFrame();
}
}
@@ -188,24 +187,22 @@ public class CallClientManager {
RongCallClient.getInstance().setVoIPCallListener(new CallStatusListener(new OnCallStatusListener() {
@Override
public void onCallWait(SurfaceView localVideo) {
for (OnCallStatusListener listener : listeners) {
for (OnCallStatusListener listener : listeners.values()) {
listener.onCallWait(localVideo);
}
ToastUtil.show(R.string.call_tips1);
}
@Override
public void onCallStart(String userId, SurfaceView remoteVideo) {
for (OnCallStatusListener listener : listeners) {
for (OnCallStatusListener listener : listeners.values()) {
listener.onCallStart(userId, remoteVideo);
}
ToastUtil.show(R.string.call_tips2);
startTimer(targetId);
}
@Override
public void onCallEnd() {
for (OnCallStatusListener listener : listeners) {
for (OnCallStatusListener listener : listeners.values()) {
listener.onCallEnd();
}
endTimer();
@@ -213,7 +210,7 @@ public class CallClientManager {
@Override
public void onStartFirstFrame() {
for (OnCallStatusListener listener : listeners) {
for (OnCallStatusListener listener : listeners.values()) {
listener.onStartFirstFrame();
}
}
@@ -245,6 +242,14 @@ public class CallClientManager {
return activeTime == 0 ? 0 : (System.currentTimeMillis() - activeTime) / 1000;
}
public String getSessionId() {
RongCallSession callSession = RongCallClient.getInstance().getCallSession();
if(callSession==null){
return "";
}
return callSession.getCallerUserId();
}
private class CallTimeTask extends TimerTask {
Handler handler = new Handler(Looper.getMainLooper());
@@ -260,7 +265,7 @@ public class CallClientManager {
@Override
public boolean cancel() {
if(sessionId.equals(targetId)){
if (sessionId.equals(targetId)) {
System.err.println("接听方不计费 结束");
return super.cancel();
}
@@ -287,7 +292,7 @@ public class CallClientManager {
}
isCallVideo = callSession.getMediaType() == RongCallCommon.CallMediaType.VIDEO;
activeTime = callSession.getActiveTime();
sessionId=callSession.getCallerUserId();
sessionId = callSession.getCallerUserId();
long time = getTime(activeTime);
checkTime(time);
String extra;
@@ -304,7 +309,7 @@ public class CallClientManager {
extra = String.format(Locale.ROOT, "%02d:%02d", (time % 3600) / 60, (time % 60));
}
handler.post(() -> {
for (OnCallStatusListener listener : listeners) {
for (OnCallStatusListener listener : listeners.values()) {
listener.onTime(extra);
if (warningTime <= 60) {
listener.onTimeWarning(warningTime--);
@@ -319,11 +324,11 @@ public class CallClientManager {
if (StringUtil.isEmpty(targetId)) {
return;
}
if(sessionId.equals(targetId)){
if (sessionId.equals(targetId)) {
System.err.println("接听方不计费");
return;
}
if(time==0){
if (time == 0) {
return;
}
time = time % 10;
@@ -350,7 +355,7 @@ public class CallClientManager {
warningTime = bean.getMp3Time();
}
if (warningTime <= 60) {
for (OnCallStatusListener listener : listeners) {
for (OnCallStatusListener listener : listeners.values()) {
listener.onTimeWarning(warningTime);
}
}
@@ -360,7 +365,7 @@ public class CallClientManager {
public void onError(int status, String msg) {
super.onError(status, msg);
if (status == OnSendMessageListener.STATUS_NOT_PRICE) {
for (OnCallStatusListener listener : listeners) {
for (OnCallStatusListener listener : listeners.values()) {
listener.onErrorNotPrice(msg);
}
endCall();
@@ -548,12 +553,12 @@ public class CallClientManager {
* 如果对端调用{@link RongCallClient#startCall(int, boolean, Conversation.ConversationType, String, List, List, RongCallCommon.CallMediaType, String, StartCameraCallback)} 或
* {@link RongCallClient#acceptCall(String, int, boolean, StartCameraCallback)}开始的音视频通话,则可以使用如下设置改变对端视频流的镜像显示:<br />
* <pre class="prettyprint">
* public void onRemoteUserJoined(String userId, RongCallCommon.CallMediaType mediaType, int userType, SurfaceView remoteVideo) {
* if (null != remoteVideo) {
* ((RongRTCVideoView) remoteVideo).setMirror( boolean);//观看对方视频流是否镜像处理
* }
* }
* </pre>
* public void onRemoteUserJoined(String userId, RongCallCommon.CallMediaType mediaType, int userType, SurfaceView remoteVideo) {
* if (null != remoteVideo) {
* ((RongRTCVideoView) remoteVideo).setMirror( boolean);//观看对方视频流是否镜像处理
* }
* }
* </pre>
*/
@Override
public void onRemoteUserJoined(String userId, RongCallCommon.CallMediaType mediaType, int userType, SurfaceView remoteVideo) {