update
This commit is contained in:
@@ -8,7 +8,11 @@ import android.text.TextUtils;
|
||||
import android.view.SurfaceView;
|
||||
|
||||
import com.blankj.utilcode.util.PermissionUtils;
|
||||
import com.shayu.onetoone.bean.SendConsumeBean;
|
||||
import com.shayu.onetoone.listener.OnCallStatusListener;
|
||||
import com.shayu.onetoone.listener.OnSendMessageListener;
|
||||
import com.yunbao.common.CommonAppContext;
|
||||
import com.yunbao.common.utils.StringUtil;
|
||||
import com.yunbao.common.utils.ToastUtil;
|
||||
|
||||
import java.util.ArrayList;
|
||||
@@ -75,11 +79,19 @@ public class CallClientManager {
|
||||
listeners.remove(statusListener);
|
||||
}
|
||||
|
||||
private void startTimer() {
|
||||
public void checkMoney(String targetId, boolean video, OnSendMessageListener listener) {
|
||||
if (video) {
|
||||
SendMessageManager.checkVideoMessage(targetId, "1", listener);
|
||||
} else {
|
||||
SendMessageManager.checkAudioMessage(targetId, "1", listener);
|
||||
}
|
||||
}
|
||||
|
||||
private void startTimer(String targetId) {
|
||||
if (timeTask != null) {
|
||||
timeTask.cancel();
|
||||
}
|
||||
timeTask = new CallTimeTask();
|
||||
timeTask = new CallTimeTask(targetId);
|
||||
new Timer().schedule(timeTask, 0, 1000);
|
||||
}
|
||||
|
||||
@@ -106,7 +118,7 @@ public class CallClientManager {
|
||||
listener.onCallStart(userId, remoteVideo);
|
||||
}
|
||||
ToastUtil.show("连接成功");
|
||||
startTimer();
|
||||
startTimer(targetId);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -145,7 +157,7 @@ public class CallClientManager {
|
||||
listener.onCallStart(userId, remoteVideo);
|
||||
}
|
||||
ToastUtil.show("连接成功");
|
||||
startTimer();
|
||||
startTimer(targetId);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -182,7 +194,7 @@ public class CallClientManager {
|
||||
for (OnCallStatusListener listener : listeners) {
|
||||
listener.onCallStart(userId, remoteVideo);
|
||||
}
|
||||
startTimer();
|
||||
startTimer(null);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -224,6 +236,30 @@ public class CallClientManager {
|
||||
private class CallTimeTask extends TimerTask {
|
||||
Handler handler = new Handler(Looper.getMainLooper());
|
||||
|
||||
private String targetId;
|
||||
private boolean isCallVideo = false;
|
||||
long warningTime;
|
||||
long activeTime;
|
||||
|
||||
public CallTimeTask(String targetId) {
|
||||
this.targetId = targetId;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean cancel() {
|
||||
long time = getTime(activeTime);
|
||||
time = time % 10;
|
||||
if (time == 0) {
|
||||
time = 10;
|
||||
}
|
||||
if (isCallVideo) {
|
||||
SendMessageManager.pingVideoMessage(targetId, time + "", new SendMessageListener());
|
||||
} else {
|
||||
SendMessageManager.pingAudioMessage(targetId, time + "", new SendMessageListener());
|
||||
}
|
||||
return super.cancel();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
RongCallSession callSession = RongCallClient.getInstance().getCallSession();
|
||||
@@ -232,7 +268,10 @@ public class CallClientManager {
|
||||
timeTask = null;
|
||||
return;
|
||||
}
|
||||
long time = getTime(callSession.getActiveTime());
|
||||
isCallVideo = callSession.getMediaType() == RongCallCommon.CallMediaType.VIDEO;
|
||||
activeTime = callSession.getActiveTime();
|
||||
long time = getTime(activeTime);
|
||||
checkTime(time);
|
||||
String extra;
|
||||
if (time > 0) {
|
||||
if (time >= 3600) {
|
||||
@@ -249,11 +288,57 @@ public class CallClientManager {
|
||||
handler.post(() -> {
|
||||
for (OnCallStatusListener listener : listeners) {
|
||||
listener.onTime(extra);
|
||||
listener.onTimeWarning(warningTime--);
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
private void checkTime(long time) {
|
||||
if (StringUtil.isEmpty(targetId)) {
|
||||
return;
|
||||
}
|
||||
time = time % 10;
|
||||
if (time == 0) {
|
||||
time = 10;
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
if (isCallVideo) {
|
||||
SendMessageManager.pingVideoMessage(targetId, time + "", new SendMessageListener());
|
||||
} else {
|
||||
SendMessageManager.pingAudioMessage(targetId, time + "", new SendMessageListener());
|
||||
}
|
||||
}
|
||||
|
||||
private class SendMessageListener extends OnSendMessageListener {
|
||||
@Override
|
||||
public void onSuccess(String token, SendConsumeBean bean) {
|
||||
super.onSuccess(token, bean);
|
||||
|
||||
if (isCallVideo) {
|
||||
warningTime = bean.getVideoTime();
|
||||
} else {
|
||||
warningTime = bean.getMp3Time();
|
||||
}
|
||||
if (warningTime <= 60) {
|
||||
for (OnCallStatusListener listener : listeners) {
|
||||
listener.onTimeWarning(warningTime);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(int status, String msg) {
|
||||
super.onError(status, msg);
|
||||
if (status == OnSendMessageListener.STATUS_NOT_PRICE) {
|
||||
for (OnCallStatusListener listener : listeners) {
|
||||
listener.onErrorNotPrice(msg);
|
||||
}
|
||||
endCall();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -435,12 +520,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) {
|
||||
|
||||
Reference in New Issue
Block a user