update 视频、音频
This commit is contained in:
@@ -0,0 +1,314 @@
|
||||
package com.shayu.onetoone.activity.message;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.view.MotionEvent;
|
||||
import android.view.SurfaceView;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import com.alibaba.android.arouter.facade.annotation.Route;
|
||||
import com.lzf.easyfloat.EasyFloat;
|
||||
import com.lzf.easyfloat.enums.ShowPattern;
|
||||
import com.lzf.easyfloat.interfaces.OnFloatCallbacks;
|
||||
import com.makeramen.roundedimageview.RoundedImageView;
|
||||
import com.shayu.onetoone.R;
|
||||
import com.shayu.onetoone.activity.AbsOTOActivity;
|
||||
import com.shayu.onetoone.bean.FollowBean;
|
||||
import com.shayu.onetoone.bean.UserBean;
|
||||
import com.shayu.onetoone.dialog.GiftDialog;
|
||||
import com.shayu.onetoone.listener.OnCallStatusListener;
|
||||
import com.shayu.onetoone.manager.CallClientManager;
|
||||
import com.shayu.onetoone.manager.OTONetManager;
|
||||
import com.shayu.onetoone.manager.RouteManager;
|
||||
import com.shayu.onetoone.utils.ConversationUtils;
|
||||
import com.yunbao.common.glide.ImgLoader;
|
||||
import com.yunbao.common.http.base.HttpCallback;
|
||||
import com.yunbao.common.utils.DpUtil;
|
||||
import com.yunbao.common.utils.ToastUtil;
|
||||
import com.yunbao.common.utils.WordUtil;
|
||||
|
||||
|
||||
@Route(path = RouteManager.ACTIVITY_CALL_AUDIO)
|
||||
public class CallAudioActivity extends AbsOTOActivity implements View.OnClickListener {
|
||||
private ImageView vague;
|
||||
private ImageView close;
|
||||
private ImageView avatar;
|
||||
private ImageView follow;
|
||||
private TextView userName;
|
||||
private TextView userInfo;
|
||||
private ImageView gift;
|
||||
private ImageView money;
|
||||
private ImageView callStop;
|
||||
private ImageView callMsg;
|
||||
private TextView callTime;
|
||||
|
||||
private String targetId;
|
||||
private String callId;
|
||||
private String model;
|
||||
|
||||
|
||||
private OnCallStatusListener onCallStatusListener;
|
||||
|
||||
@Override
|
||||
protected int getLayoutId() {
|
||||
return R.layout.activity_call_audio;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void main(Bundle savedInstanceState) {
|
||||
|
||||
Bundle bundle = getIntent().getBundleExtra("bundle");
|
||||
if (bundle == null) {
|
||||
finish();
|
||||
return;
|
||||
}
|
||||
targetId = bundle.getString("targetId");
|
||||
callId = bundle.getString("callId");
|
||||
model = bundle.getString("model");
|
||||
initView();
|
||||
onCallStatusListener = new CallStatusListener();
|
||||
CallClientManager.getManager().addOnVoIPCallListener(onCallStatusListener);
|
||||
initTargetData();
|
||||
if (model.equals(CallClientManager.VIDEO_FLOAT)) {
|
||||
EasyFloat.dismiss("call");
|
||||
callMsg.setTag(true);
|
||||
callMsg.setImageResource(R.mipmap.ic_call_audio_msg);
|
||||
gift.setVisibility(View.VISIBLE);
|
||||
money.setVisibility(View.VISIBLE);
|
||||
}
|
||||
if (model.equals(CallClientManager.AUDIO_CALL)) {
|
||||
CallClientManager.getManager().callAudio(targetId);
|
||||
callMsg.setTag(true);
|
||||
callMsg.setImageResource(R.mipmap.ic_call_audio_msg);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
super.onDestroy();
|
||||
CallClientManager.getManager().removeOnVoIPCallListener(onCallStatusListener);
|
||||
}
|
||||
|
||||
private void initView() {
|
||||
// 获取全局变量
|
||||
vague = findViewById(R.id.vague);
|
||||
close = findViewById(R.id.close);
|
||||
avatar = findViewById(R.id.avatar);
|
||||
follow = findViewById(R.id.follow);
|
||||
userName = findViewById(R.id.user_name);
|
||||
userInfo = findViewById(R.id.user_info);
|
||||
gift = findViewById(R.id.gift);
|
||||
money = findViewById(R.id.money);
|
||||
callStop = findViewById(R.id.call_stop);
|
||||
callMsg = findViewById(R.id.call_msg);
|
||||
callTime = findViewById(R.id.call_time);
|
||||
|
||||
callMsg.setImageResource(io.rong.callkit.R.drawable.rc_voip_audio_answer_selector_new);
|
||||
|
||||
// 注册点击事件
|
||||
vague.setOnClickListener(this);
|
||||
close.setOnClickListener(this);
|
||||
avatar.setOnClickListener(this);
|
||||
follow.setOnClickListener(this);
|
||||
userName.setOnClickListener(this);
|
||||
userInfo.setOnClickListener(this);
|
||||
gift.setOnClickListener(this);
|
||||
money.setOnClickListener(this);
|
||||
callStop.setOnClickListener(this);
|
||||
callMsg.setOnClickListener(this);
|
||||
callTime.setOnClickListener(this);
|
||||
|
||||
gift.setVisibility(View.INVISIBLE);
|
||||
money.setVisibility(View.INVISIBLE);
|
||||
|
||||
}
|
||||
|
||||
private void initTargetData() {
|
||||
OTONetManager.getInstance(mContext)
|
||||
.getTargetUserInfo(Integer.parseInt(targetId), new HttpCallback<UserBean>() {
|
||||
@Override
|
||||
public void onSuccess(UserBean data) {
|
||||
userName.setText(data.getUser().getUserNicename());
|
||||
userInfo.setText(data.getUser().getSignature());
|
||||
ImgLoader.display(mContext, data.getUser().getAvatar(), avatar);
|
||||
ImgLoader.displayBlur(mContext, data.getUser().getAvatar(), vague, 50);
|
||||
if (data.getUser().isFollow()) {
|
||||
follow.setVisibility(View.GONE);
|
||||
} else {
|
||||
follow.setVisibility(View.VISIBLE);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(String error) {
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void accept() {
|
||||
CallClientManager.getManager().acceptCall(targetId);
|
||||
}
|
||||
|
||||
private void stop() {
|
||||
CallClientManager.getManager().endCall();
|
||||
}
|
||||
|
||||
private void showGift() {
|
||||
new GiftDialog(mContext)
|
||||
.setTargetId(targetId)
|
||||
.showDialog();
|
||||
}
|
||||
private void follow(){
|
||||
OTONetManager.getInstance(mContext)
|
||||
.follow(targetId, new HttpCallback<FollowBean>() {
|
||||
@Override
|
||||
public void onSuccess(FollowBean data) {
|
||||
ToastUtil.show(WordUtil.getNewString(R.string.system_tip_success));
|
||||
follow.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(String error) {
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void showWindow(boolean toChatView) {
|
||||
ImageView icon = new ImageView(mContext);
|
||||
icon.setTag(getIntent().getBundleExtra("bundle"));
|
||||
icon.setImageResource(io.rong.callkit.R.drawable.rc_voip_audio_answer_selector_new);
|
||||
icon.setLayoutParams(new ViewGroup.LayoutParams(DpUtil.dp2px(40), DpUtil.dp2px(40)));
|
||||
finish();
|
||||
EasyFloat.with(this)
|
||||
.setLayout(icon)
|
||||
.setShowPattern(ShowPattern.FOREGROUND)
|
||||
.setTag("call")
|
||||
.setDragEnable(true)
|
||||
.setBorder()
|
||||
.registerCallbacks(new OnFloatCallbacks() {
|
||||
OnCallStatusListener windowListener;
|
||||
|
||||
@Override
|
||||
public void createdResult(boolean b, @Nullable String s, @Nullable View view) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void show(@NonNull View view) {
|
||||
view.setOnClickListener(v -> {
|
||||
Bundle bundle = (Bundle) v.getTag();
|
||||
bundle.putString("model", CallClientManager.AUDIO_FLOAT);
|
||||
RouteManager.forwardActivity(RouteManager.ACTIVITY_CALL_AUDIO, bundle);
|
||||
});
|
||||
windowListener = new WindowCallStatusListener();
|
||||
CallClientManager.getManager().addOnVoIPCallListener(windowListener);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void hide(@NonNull View view) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void dismiss() {
|
||||
CallClientManager.getManager().removeOnVoIPCallListener(windowListener);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void touchEvent(@NonNull View view, @NonNull MotionEvent motionEvent) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void drag(@NonNull View view, @NonNull MotionEvent motionEvent) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void dragEnd(@NonNull View view) {
|
||||
|
||||
}
|
||||
}).show();
|
||||
if (toChatView) {
|
||||
ConversationUtils.startConversation(mContext, targetId);
|
||||
}
|
||||
}
|
||||
|
||||
private class CallStatusListener extends OnCallStatusListener {
|
||||
@Override
|
||||
public void onCallWait(SurfaceView surfaceView) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCallStart(String userId, SurfaceView surfaceView) {
|
||||
gift.setVisibility(View.VISIBLE);
|
||||
money.setVisibility(View.VISIBLE);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCallEnd() {
|
||||
finish();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onStartFirstFrame() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onTime(String time) {
|
||||
super.onTime(time);
|
||||
callTime.setText("通话时长:" + time);
|
||||
}
|
||||
}
|
||||
|
||||
private static class WindowCallStatusListener extends OnCallStatusListener {
|
||||
@Override
|
||||
public void onCallWait(SurfaceView surfaceView) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCallStart(String userId, SurfaceView surfaceView) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCallEnd() {
|
||||
EasyFloat.dismiss("call");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onStartFirstFrame() {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
int id = v.getId();
|
||||
if (id == R.id.call_msg) {
|
||||
if (v.getTag() == null) {
|
||||
accept();
|
||||
v.setTag(true);
|
||||
callMsg.setImageResource(R.mipmap.ic_call_audio_msg);
|
||||
} else {
|
||||
showWindow(true);
|
||||
}
|
||||
} else if (id == R.id.call_stop) {
|
||||
stop();
|
||||
} else if (id == R.id.gift) {
|
||||
showGift();
|
||||
} else if (id == R.id.close) {
|
||||
showWindow(false);
|
||||
}else if(id ==R.id.follow){
|
||||
follow();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -29,13 +29,20 @@ import com.lzf.easyfloat.interfaces.OnFloatCallbacks;
|
||||
import com.makeramen.roundedimageview.RoundedImageView;
|
||||
import com.shayu.onetoone.R;
|
||||
import com.shayu.onetoone.activity.AbsOTOActivity;
|
||||
import com.shayu.onetoone.bean.FollowBean;
|
||||
import com.shayu.onetoone.bean.UserBean;
|
||||
import com.shayu.onetoone.dialog.GiftDialog;
|
||||
import com.shayu.onetoone.listener.OnCallStatusListener;
|
||||
import com.shayu.onetoone.manager.CallClientManager;
|
||||
import com.shayu.onetoone.manager.OTONetManager;
|
||||
import com.shayu.onetoone.manager.RouteManager;
|
||||
import com.shayu.onetoone.utils.ConversationUtils;
|
||||
import com.yunbao.common.glide.ImgLoader;
|
||||
import com.yunbao.common.http.base.HttpCallback;
|
||||
import com.yunbao.common.utils.DpUtil;
|
||||
import com.yunbao.common.utils.StringUtil;
|
||||
import com.yunbao.common.utils.ToastUtil;
|
||||
import com.yunbao.common.utils.WordUtil;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
@@ -53,6 +60,7 @@ public class CallVideoActivity extends AbsOTOActivity {
|
||||
private ViewGroup myView;
|
||||
private ViewGroup targetView;
|
||||
private ViewGroup callLayout;
|
||||
private View callWaitLayout;
|
||||
private ViewGroup rootView;
|
||||
private View buttonView;
|
||||
private ImageView callStop;
|
||||
@@ -66,6 +74,7 @@ public class CallVideoActivity extends AbsOTOActivity {
|
||||
private ImageView close;
|
||||
private ImageView follow;
|
||||
private TextView followText;
|
||||
private TextView callTime;
|
||||
|
||||
private OnCallStatusListener onCallStatusListener;
|
||||
|
||||
@@ -97,10 +106,10 @@ public class CallVideoActivity extends AbsOTOActivity {
|
||||
callId = bundle.getString("callId");
|
||||
model = bundle.getString("model");
|
||||
|
||||
|
||||
onCallStatusListener = new CallStatusListener();
|
||||
CallClientManager.getManager().addOnVoIPCallListener(onCallStatusListener);
|
||||
if (!EasyFloat.isShow("call")) {
|
||||
|
||||
if (!model.equals(CallClientManager.VIDEO_FLOAT)) {
|
||||
RongCallClient.getInstance()
|
||||
.startIncomingPreview(
|
||||
new StartIncomingPreviewCallback() {
|
||||
@@ -108,6 +117,7 @@ public class CallVideoActivity extends AbsOTOActivity {
|
||||
public void onDone(boolean isFront, SurfaceView localVideo) {
|
||||
myView.removeAllViews();
|
||||
myView.addView(localVideo);
|
||||
callLayout.setVisibility(View.VISIBLE);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -115,12 +125,17 @@ public class CallVideoActivity extends AbsOTOActivity {
|
||||
}
|
||||
});
|
||||
}
|
||||
initButton(buttonView);
|
||||
if (!StringUtil.isEmpty(callId)) {
|
||||
CallClientManager.getManager().callVideo(callId);
|
||||
initWaitView();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onResume() {
|
||||
super.onResume();
|
||||
if (EasyFloat.isShow("call") && CallClientManager.getManager().getRemoteVideo(targetId) != null) {
|
||||
if (model.equals(CallClientManager.VIDEO_FLOAT)) {
|
||||
callLayout.setVisibility(View.GONE);
|
||||
EasyFloat.getFloatView("call").setOnClickListener(null);
|
||||
((ViewGroup) EasyFloat.getFloatView("call").getParent()).removeAllViews();
|
||||
@@ -129,11 +144,14 @@ public class CallVideoActivity extends AbsOTOActivity {
|
||||
|
||||
new Handler(Looper.getMainLooper())
|
||||
.postDelayed(() -> {
|
||||
SurfaceView surfaceView = CallClientManager.getManager().getRemoteVideo(targetId);
|
||||
SurfaceView surfaceView = CallClientManager.getManager().getRemoteVideo();
|
||||
surfaceView.setLayoutParams(new ViewGroup.LayoutParams(-1, -1));
|
||||
initView();
|
||||
initButton(buttonView);
|
||||
myView.addView(surfaceView);
|
||||
myView.addView(buttonView);
|
||||
targetView.addView(CallClientManager.getManager().getLocalVideo());
|
||||
initTargetData();
|
||||
}, 300);
|
||||
|
||||
}
|
||||
@@ -145,9 +163,22 @@ public class CallVideoActivity extends AbsOTOActivity {
|
||||
targetView = findViewById(R.id.target_view);
|
||||
callLayout = findViewById(R.id.rc_voip_two_btn);
|
||||
buttonView = LayoutInflater.from(mContext).inflate(R.layout.view_call_video_item, rootView, false);
|
||||
initButton(buttonView);
|
||||
// 为所有View设置点击事件监听器
|
||||
setClickListeners();
|
||||
callWaitLayout = LayoutInflater.from(mContext).inflate(R.layout.view_call_video_wait, rootView, false);
|
||||
|
||||
}
|
||||
|
||||
private void initWaitView() {
|
||||
callLayout.setVisibility(View.GONE);
|
||||
callStop = callWaitLayout.findViewById(R.id.call_stop);
|
||||
cameraCloseSwitch = callWaitLayout.findViewById(R.id.camera_close_switch);
|
||||
cameraSwitch = callWaitLayout.findViewById(R.id.camera_switch);
|
||||
micSwitch = callWaitLayout.findViewById(R.id.mic_switch);
|
||||
close = callWaitLayout.findViewById(R.id.close);
|
||||
callStop.setOnClickListener(onClickListener);
|
||||
cameraCloseSwitch.setOnClickListener(onClickListener);
|
||||
cameraSwitch.setOnClickListener(onClickListener);
|
||||
micSwitch.setOnClickListener(onClickListener);
|
||||
close.setOnClickListener(onClickListener);
|
||||
}
|
||||
|
||||
private void initButton(View itemView) {
|
||||
@@ -162,6 +193,7 @@ public class CallVideoActivity extends AbsOTOActivity {
|
||||
close = itemView.findViewById(R.id.close);
|
||||
follow = itemView.findViewById(R.id.follow);
|
||||
followText = itemView.findViewById(R.id.follow_text);
|
||||
callTime = itemView.findViewById(R.id.call_time);
|
||||
// 为所有View设置点击事件监听器
|
||||
setClickListeners();
|
||||
}
|
||||
@@ -204,19 +236,19 @@ public class CallVideoActivity extends AbsOTOActivity {
|
||||
}
|
||||
|
||||
private void switchAudio() {
|
||||
RongCallClient.getInstance().setEnableLocalAudio(!RongCallClient.getInstance().isLocalAudioEnabled());
|
||||
ToastUtil.show("麦克风状态:" + RongCallClient.getInstance().isLocalAudioEnabled());
|
||||
micSwitch.setImageResource(RongCallClient.getInstance().isLocalAudioEnabled() ? R.mipmap.ic_call_audio_select : R.mipmap.ic_call_audio);
|
||||
boolean enabled = RongCallClient.getInstance().isLocalAudioEnabled();
|
||||
RongCallClient.getInstance().setEnableLocalAudio(!enabled);
|
||||
micSwitch.setImageResource(!enabled ? R.mipmap.ic_call_audio_select : R.mipmap.ic_call_audio);
|
||||
}
|
||||
|
||||
private void showWindow(boolean toChatView) {
|
||||
CallClientManager.getManager().getRemoteVideo(targetId).setTag(getIntent().getBundleExtra("bundle"));
|
||||
CallClientManager.getManager().getRemoteVideo().setTag(getIntent().getBundleExtra("bundle"));
|
||||
myView.removeAllViews();
|
||||
targetView.removeAllViews();
|
||||
finish();
|
||||
CallClientManager.getManager().getRemoteVideo(targetId).setLayoutParams(new ViewGroup.LayoutParams(DpUtil.dp2px(114), DpUtil.dp2px(164)));
|
||||
CallClientManager.getManager().getRemoteVideo().setLayoutParams(new ViewGroup.LayoutParams(DpUtil.dp2px(114), DpUtil.dp2px(164)));
|
||||
EasyFloat.with(this)
|
||||
.setLayout(CallClientManager.getManager().getRemoteVideo(targetId))
|
||||
.setLayout(CallClientManager.getManager().getRemoteVideo())
|
||||
.setShowPattern(ShowPattern.FOREGROUND)
|
||||
.setTag("call")
|
||||
.setDragEnable(true)
|
||||
@@ -232,7 +264,9 @@ public class CallVideoActivity extends AbsOTOActivity {
|
||||
@Override
|
||||
public void show(@NonNull View view) {
|
||||
view.setOnClickListener(v -> {
|
||||
RouteManager.forwardActivity(RouteManager.ACTIVITY_CALL_VIDEO, (Bundle) v.getTag());
|
||||
Bundle bundle = (Bundle) v.getTag();
|
||||
bundle.putString("model", CallClientManager.VIDEO_FLOAT);
|
||||
RouteManager.forwardActivity(RouteManager.ACTIVITY_CALL_VIDEO, bundle);
|
||||
});
|
||||
windowListener = new WindowCallStatusListener();
|
||||
CallClientManager.getManager().addOnVoIPCallListener(windowListener);
|
||||
@@ -266,10 +300,41 @@ public class CallVideoActivity extends AbsOTOActivity {
|
||||
if (toChatView) {
|
||||
ConversationUtils.startConversation(mContext, targetId);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
private void initTargetData() {
|
||||
OTONetManager.getInstance(mContext)
|
||||
.getTargetUserInfo(Integer.parseInt(targetId), new HttpCallback<UserBean>() {
|
||||
@Override
|
||||
public void onSuccess(UserBean data) {
|
||||
ImgLoader.display(mContext, data.getUser().getAvatar(), avatar);
|
||||
if (data.getUser().isFollow()) {
|
||||
follow.setVisibility(View.GONE);
|
||||
} else {
|
||||
follow.setVisibility(View.VISIBLE);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(String error) {
|
||||
}
|
||||
});
|
||||
}
|
||||
private void follow(){
|
||||
OTONetManager.getInstance(mContext)
|
||||
.follow(targetId, new HttpCallback<FollowBean>() {
|
||||
@Override
|
||||
public void onSuccess(FollowBean data) {
|
||||
ToastUtil.show(WordUtil.getNewString(R.string.system_tip_success));
|
||||
follow.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(String error) {
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
private final View.OnClickListener onClickListener = new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
@@ -293,6 +358,8 @@ public class CallVideoActivity extends AbsOTOActivity {
|
||||
showWindow(false);
|
||||
} else if (id == R.id.message) {
|
||||
showWindow(true);
|
||||
}else if(id == R.id.follow){
|
||||
follow();
|
||||
}
|
||||
}
|
||||
};
|
||||
@@ -302,10 +369,16 @@ public class CallVideoActivity extends AbsOTOActivity {
|
||||
public void onCallWait(SurfaceView surfaceView) {
|
||||
myView.removeAllViews();
|
||||
myView.addView(surfaceView);
|
||||
if (model.equals(CallClientManager.VIDEO_CALL)) {
|
||||
myView.addView(callWaitLayout);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCallStart(String userId, SurfaceView surfaceView) {
|
||||
initView();
|
||||
initButton(buttonView);
|
||||
initTargetData();
|
||||
surfaceView.setZOrderOnTop(false);
|
||||
surfaceView.setZOrderMediaOverlay(false);
|
||||
surfaceView.invalidate();
|
||||
@@ -314,18 +387,11 @@ public class CallVideoActivity extends AbsOTOActivity {
|
||||
surfaceView.setZOrderMediaOverlay(false);
|
||||
surfaceView.invalidate();
|
||||
});
|
||||
if (model.equals(CallClientManager.VIDEO_CALL)) {
|
||||
targetView.removeAllViews();
|
||||
targetView.addView(surfaceView);
|
||||
myView.removeAllViews();
|
||||
myView.addView(CallClientManager.getManager().getLocalVideo());
|
||||
} else {
|
||||
myView.removeAllViews();
|
||||
myView.addView(surfaceView);
|
||||
targetView.removeAllViews();
|
||||
targetView.addView(CallClientManager.getManager().getLocalVideo());
|
||||
myView.addView(buttonView);
|
||||
}
|
||||
myView.removeAllViews();
|
||||
myView.addView(surfaceView);
|
||||
targetView.removeAllViews();
|
||||
targetView.addView(CallClientManager.getManager().getLocalVideo());
|
||||
myView.addView(buttonView);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -335,13 +401,19 @@ public class CallVideoActivity extends AbsOTOActivity {
|
||||
|
||||
@Override
|
||||
public void onStartFirstFrame() {
|
||||
/* CallClientManager.getManager().getRemoteVideo(targetId).setZOrderOnTop(false);
|
||||
CallClientManager.getManager().getRemoteVideo(targetId).setZOrderMediaOverlay(false);
|
||||
CallClientManager.getManager().getRemoteVideo(targetId).invalidate();*/
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onTime(String time) {
|
||||
super.onTime(time);
|
||||
if(callTime!=null){
|
||||
callTime.setText("通话时长:"+time);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private class WindowCallStatusListener extends OnCallStatusListener {
|
||||
private static class WindowCallStatusListener extends OnCallStatusListener {
|
||||
@Override
|
||||
public void onCallWait(SurfaceView surfaceView) {
|
||||
|
||||
|
||||
Reference in New Issue
Block a user