pdlivexp/live/src/main/java/com/yunbao/live/views/LivePushSwViewHolder.java
2024-09-07 16:46:08 +08:00

686 lines
29 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package com.yunbao.live.views;
import static com.yunbao.live.activity.LiveActivity.mLiveSwLinkMicPkPresenter;
import static com.yunbao.live.event.LiveAudienceEvent.LiveAudienceType.LIVE_PK_END;
import static com.yunbao.live.event.LiveAudienceEvent.LiveAudienceType.LIVE_PK_ING;
import static com.yunbao.live.presenter.LiveSwLinkMicPkPresenter.inputStreamList;
import static com.yunbao.live.presenter.LiveSwLinkMicPkPresenter.inputStreamList1;
import static com.yunbao.live.presenter.LiveSwLinkMicPkPresenter.mPkUid;
import android.app.Activity;
import android.app.Dialog;
import android.content.Context;
import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.util.Log;
import android.util.TypedValue;
import android.view.View;
import android.view.ViewGroup;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.alibaba.fastjson.JSONObject;
import com.google.gson.Gson;
import com.tencent.rtmp.ITXLivePushListener;
import com.tencent.rtmp.TXLiveConstants;
import com.yunbao.common.CommonAppConfig;
import com.yunbao.common.Constants;
import com.yunbao.common.bean.UserBean;
import com.yunbao.common.event.AnchorInfoEvent;
import com.yunbao.common.event.LivePushRyEvent;
import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.http.HttpCallback;
import com.yunbao.common.http.HttpClient;
import com.yunbao.common.manager.IMLoginManager;
import com.yunbao.common.utils.Bus;
import com.yunbao.common.utils.DialogUitl;
import com.yunbao.common.utils.DpUtil;
import com.yunbao.common.utils.L;
import com.yunbao.common.utils.StringUtil;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.live.R;
import com.yunbao.live.activity.LiveActivity;
import com.yunbao.live.activity.LiveSwAnchorActivity;
import com.yunbao.live.bean.DrPkbean;
import com.yunbao.live.event.LiveAudienceEvent;
import com.yunbao.common.http.LiveHttpConsts;
import com.yunbao.common.http.LiveHttpUtil;
import com.yunbao.live.presenter.LiveSwLinkMicPkPresenter;
import com.yunbao.live.socket.SocketSendBean;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
import java.util.ArrayList;
import java.util.List;
import cn.rongcloud.rtc.api.RCRTCEngine;
import cn.rongcloud.rtc.api.RCRTCMixConfig;
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.RCRTCLiveInfo;
import cn.rongcloud.rtc.base.RCRTCParamsType;
import cn.rongcloud.rtc.base.RTCErrorCode;
import io.agora.beautyapi.faceunity.agora.SWAuManager;
import io.agora.beautyapi.faceunity.agora.SWManager;
import io.rong.imlib.IRongCallback;
import io.rong.imlib.RongIMClient;
import io.rong.imlib.model.Conversation;
import io.rong.imlib.model.Message;
import io.rong.message.TextMessage;
/**
* Created by cxf on 2018/10/7.
* 腾讯云直播推流
*/
public class LivePushSwViewHolder extends AbsRyLivePushViewHolder implements ITXLivePushListener {
private int mMeiBaiVal;//基础美颜 美白
private int mMoPiVal;//基础美颜 磨皮
private int mHongRunVal;//基础美颜 红润
private String mBgmPath;//背景音乐路径
private Bitmap mFilterBmp;
private Handler mMainHandler;
public static Context contexts;
public static TextView btn_close;
public LinearLayout dr_pk_view;
public static RCRTCRoom rtcRoom;
public static RCRTCLiveInfo rcrtcLiveInfo;
private ViewGroup liveActivityContainer;
public FrameLayout timeTitle;
public TextView textTime;
private TextView tv_avatarOther_name;
private ImageView avatarOther;
private LinearLayout goto_room_view;
private boolean isPk = false;
private boolean isNeedOpenCamera = false;
private SWManager swManager;
private String pkUid1; //单人PK 对方主播 uid
//修改上面主播的头像
@Subscribe(threadMode = ThreadMode.MAIN)
public void onUPAnchorInfo(AnchorInfoEvent e) {
Log.i(TAG, "onUPAnchorInfo: " + e);
if (e != null) {
if (!e.isClear()) {
tv_avatarOther_name.setText(e.getUserNiceName());
tv_avatarOther_name.setTag(e.getUserNiceName());
ImgLoader.displayAvatar(mContext, e.getAvatar(), avatarOther);
goto_room_view.setVisibility(View.VISIBLE);
} else {
goto_room_view.setVisibility(View.GONE);
}
}
}
public onDrPkJoinSuccessListener onDrPkJoinSuccessListener;
public void setOnDrPkJoinSuccessListener(LivePushSwViewHolder.onDrPkJoinSuccessListener onDrPkJoinSuccessListener) {
this.onDrPkJoinSuccessListener = onDrPkJoinSuccessListener;
}
public LivePushSwViewHolder(Context context, ViewGroup parentView) {
super(context, parentView);
this.contexts = context;
EventBus.getDefault().register(this);
}
@Override
protected int getLayoutId() {
return R.layout.view_live_push_sw;
}
public void setLiveActivityContainer(ViewGroup liveActivityContainer) {
this.liveActivityContainer = liveActivityContainer;
}
@Override
public void init() {
super.init();
Bus.getOn(this);
mPreView = (FrameLayout) findViewById(R.id.camera_preview);
camera = (LinearLayout) findViewById(R.id.camera);
mPreView1 = (FrameLayout) findViewById(R.id.camera_preview1);
cameraPreview3 = (FrameLayout) findViewById(R.id.camera_preview3);
dr1_preview = (FrameLayout) findViewById(R.id.dr1_preview);
dr2_preview = (FrameLayout) findViewById(R.id.dr2_preview);
dr3_preview = (FrameLayout) findViewById(R.id.dr3_preview);
dr4_preview = (FrameLayout) findViewById(R.id.dr4_preview);
leave = (ImageView) findViewById(R.id.leave);
dr_pk_view = (LinearLayout) findViewById(R.id.dr_pk_view);
timeTitle = (FrameLayout) findViewById(R.id.time_title);
textTime = (TextView) findViewById(R.id.text_time);
dr_pk_view.setVisibility(View.GONE);
cameraPreview3.setVisibility(View.GONE);
btn_close = (TextView) findViewById(R.id.btn_close);
tv_avatarOther_name = (TextView) findViewById(R.id.tv_avatarOther_name);
avatarOther = (ImageView) findViewById(R.id.avatarOther);
goto_room_view = (LinearLayout) findViewById(R.id.goto_room_view);
goto_room_view.setVisibility(View.GONE);
mMainHandler = new Handler(Looper.getMainLooper());
btn_close.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
DialogUitl.showSimpleDialog(mContext, WordUtil.isNewZh() ? "是否要斷開連麥?" : "Do you want to disconnect Link?", new DialogUitl.SimpleCallback() {
@Override
public void onConfirmClick(Dialog dialog, String content) {
Log.i("PK----->", "updateSub: " + isPk + "|");
aheadOfScheduleEndPK(mPkUid, CommonAppConfig.getInstance().getUserBean().getUserNiceName(), (String) tv_avatarOther_name.getTag());
//断开连麦
LiveSwAnchorActivity.isDRPK = 0;
HttpClient.getInstance().post("livepk.setliveuserout", "livepk.setliveuserout").execute(new HttpCallback() {
@Override
public void onSuccess(int code, String msg, String[] info) {
}
});
HttpClient.getInstance().get("jieshupk", "jieshupk").params("uid", CommonAppConfig.getInstance().getUid()).params("addtime", "1").params("type", "1").params("sign", "1").execute(new HttpCallback() {
@Override
public void onSuccess(int code, String msg, String[] info) {
if (code == 0) {
JSONObject datas = JSONObject.parseObject(info[0]);
String pkUid = datas.getString("pkuid");
//退出副房间
// TODO: 2024/4/13 退出对方主播直播间
SWManager.get().exitChannelToUid(Integer.parseInt(CommonAppConfig.getInstance().getUid()), pkUid1);
SWManager.get().updateMyChannelView((FrameLayout) mBigContainer);
btn_close.setVisibility(View.GONE);//隐藏连麦按钮
EventBus.getDefault().post(new AnchorInfoEvent(true, "", "", ""));
closeButtonGone();
L.eSw("ac333333333333333333333");
SocketSendBean seed_msg = new SocketSendBean().param("_method_", Constants.SOCKET_LINK_MIC_PK).param("action", 9).param("msgtype", 10).param("win_uid", datas.getString("win_uid")).param("uid", CommonAppConfig.getInstance().getUid());
seed_msg.create();
Log.i("seed", seed_msg.mResult.toString());
HttpClient.getInstance().get("fasongxiaoxiv2", "fasongxiaoxiv2").params("GroupId", "g" + pkUid).params("jsonstr", seed_msg.mResult.toString()).execute(new HttpCallback() {
@Override
public void onSuccess(int code, String msg, String[] info) {
HttpClient.getInstance().get("fasongxiaoxiv2", "fasongxiaoxiv2").params("GroupId", "g" + CommonAppConfig.getInstance().getUid()).params("jsonstr", seed_msg.mResult.toString()).execute(new HttpCallback() {
@Override
public void onSuccess(int code, String msg, String[] info) {
SocketSendBean seed_msgs = new SocketSendBean().param("_method_", Constants.SOCKET_LINK_MIC_PK).param("action", 5).param("msgtype", 10).param("uname", "1").param("uimg", "1").param("pkuid", LiveSwLinkMicPkPresenter.oldmPkUid).param("uid", CommonAppConfig.getInstance().getUid());
seed_msgs.create();
Log.i("seed", seed_msgs.mResult.toString());
HttpClient.getInstance().get("fasongxiaoxiv2", "fasongxiaoxiv2").params("GroupId", "g" + LiveSwLinkMicPkPresenter.oldmPkUid).params("jsonstr", seed_msgs.mResult.toString()).execute(new HttpCallback() {
@Override
public void onSuccess(int code, String msg, String[] info) {
HttpClient.getInstance().get("fasongxiaoxiv2", "fasongxiaoxiv2").params("GroupId", "g" + CommonAppConfig.getInstance().getUid()).params("jsonstr", seed_msgs.mResult.toString()).execute(new HttpCallback() {
@Override
public void onSuccess(int code, String msg, String[] info) {
}
});
}
});
}
});
}
});
}
}
});
}
});
}
});
initRtcEngine();
}
/**
* 初始化声网SDK
*/
private void initRtcEngine() {
swManager = SWManager.get();
swManager.setAnchorContainer((FrameLayout) mBigContainer);
swManager.initRtcEngine((Activity) mContext, CommonAppConfig.getInstance().getUid());
swManager.setOnRtcEngineListener(new SWManager.onRtcEngineListener() {
@Override
public void onOpenSuccess(String channel, int uid) {
//开播成功
L.eSw("开播成功");
}
@Override
public void onUserOffline(int uid) {
}
});
}
public void exitChannelDrPk(List<DrPkbean> drPkbeanList) {
for (int i = 0; i < drPkbeanList.size(); i++) {
if (!CommonAppConfig.getInstance().getUid().equals(String.valueOf(drPkbeanList.get(i).getId()))) {
SWManager.get().exitChannelToUid(Integer.parseInt(CommonAppConfig.getInstance().getUid()), String.valueOf(drPkbeanList.get(i).getId()));
}
}
SWManager.get().updateMyChannelView((FrameLayout) mBigContainer);
currentPosition = 0;
drpkUid3 = "";
}
public void setAnPkRtc(UserBean u) {
EventBus.getDefault().post(new AnchorInfoEvent(false, u.getId(), u.getUserNiceName(), u.getAvatar()));
if (swManager != null && u != null) {
//将多人pk画面屏蔽
dr_pk_view.setVisibility(View.GONE);
L.eSw("设置对方主播的视图setAnPkRtc" + u);
pkUid1 = u.getId();
mPkContainer.setVisibility(View.VISIBLE);
//将自己的渲染视图设置到 leftContainer
swManager.updateMyChannelView((FrameLayout) mLeftContainer);
//清除 mBigContainer 中的渲染
mBigContainer.removeAllViews();
showButtonGone();
//设置对方主播的渲染视图 设置到 rightContainer
swManager.setPkContainer(mRightContainer);
swManager.joinChannelEx(CommonAppConfig.getInstance().getUid(), CommonAppConfig.SWToken, u.getId(), SWAuManager.getChannelName(u.getId()));
}
HttpClient.getInstance().get("xiugaizhiboxinxi", "xiugaizhiboxinxi")
.params("uid", CommonAppConfig.getInstance().getUid())
.params("pkuid", u.getId())
.params("type", "1")
.params("sign", "1")
.execute(new HttpCallback() {
@Override
public void onSuccess(int code, String msgs, String[] info) {
if (code == 0) {
HttpClient.getInstance().get("kaishipk", "kaishipk")
.params("uid", CommonAppConfig.getInstance().getUid())
.params("pkuid", u.getId())
.params("type", "1")
.params("sign", "1")
.execute(new HttpCallback() {
@Override
public void onSuccess(int code, String msgs, String[] info) {
if (code == 0) {
L.eSw("555555555555555555555555555555555555");
final SocketSendBean msg1 = new SocketSendBean()
.param("_method_", Constants.SOCKET_LINK_MIC_PK)
.param("action", 4)
.param("pkname", u.getUserNiceName())
.param("pkuid", u.getId())
.param("pkhead", u.getAvatar())
.param("uname", u.getUserNiceName())
.param("uhead", u.getAvatar())
.param("uid", CommonAppConfig.getInstance().getUid());
msg1.create();
Conversation.ConversationType conversationType = Conversation.ConversationType.CHATROOM;
TextMessage messageContent = TextMessage.obtain(msg1.mResult.toString());
Message message1 = Message.obtain("g" + CommonAppConfig.getInstance().getUid(), conversationType, messageContent);
RongIMClient.getInstance().sendMessage(message1, null, null, new IRongCallback.ISendMessageCallback() {
@Override
public void onAttached(Message message) {
}
@Override
public void onSuccess(Message message) {
Log.i("tx", "发送成功");
}
@Override
public void onError(Message message, RongIMClient.ErrorCode errorCode) {
}
});
}
}
});
}
}
});
}
private int currentPosition = 0;
private String drpkUid3 = "";
public int setAnDrPkRtc(String uid, int position) {
L.eSw("setAnDrPkRtc uid" + uid + " position" + position);
int temp = -1;
if (swManager != null && !StringUtil.isEmpty(uid)) {
L.eSw("设置对方主播的视图 setAnDrPkRtc" + uid + "position:" + position);
if (currentPosition == 0) {
position = 2;
}
if (position == -1) {
temp = currentPosition + 1;
} else {
temp = position;
}
switch (temp) {
case 2:
swManager.joinChannelDrEx(dr2_preview, CommonAppConfig.getInstance().getUid(), CommonAppConfig.SWToken, uid, SWAuManager.getChannelName(uid),temp);
swManager.updateMyChannelView(dr1_preview);
mBigContainer.removeAllViews();
dr3_preview.setVisibility(View.GONE);
dr4_preview.setVisibility(View.GONE);
break;
case 3:
drpkUid3 = uid;
swManager.joinChannelDrEx(dr4_preview, CommonAppConfig.getInstance().getUid(), CommonAppConfig.SWToken, uid, SWAuManager.getChannelName(uid),temp);
dr3_preview.setVisibility(View.GONE);
dr4_preview.setVisibility(View.VISIBLE);
break;
case 4:
dr3_preview.setVisibility(View.VISIBLE);
//先退出这个主播的直播间,在进入该直播间,(视图问题暂时這樣處理)
swManager.exitChannelToUid(Integer.parseInt(CommonAppConfig.getInstance().getUid()), drpkUid3);
swManager.joinChannelDrEx(dr3_preview, CommonAppConfig.getInstance().getUid(), CommonAppConfig.SWToken, drpkUid3, SWAuManager.getChannelName(drpkUid3),temp);
swManager.joinChannelDrEx(dr4_preview, CommonAppConfig.getInstance().getUid(), CommonAppConfig.SWToken, uid, SWAuManager.getChannelName(uid),temp);
break;
}
dr_pk_view.setVisibility(View.VISIBLE);
currentPosition = temp;
}
return currentPosition;
}
public void anchorClose() {
swManager.exitChannelToUid(Integer.parseInt(CommonAppConfig.getInstance().getUid()),pkUid1);
swManager.updateMyChannelView((FrameLayout) mBigContainer); //用户主动断开连麦再退出画面
mPkContainer.setVisibility(View.GONE);
pkUid1 = null;
}
public void onLinkMicAnchorClose() {
//swManager.updateMyChannelView((FrameLayout) mBigContainer); 用户主动断开连麦再退出画面
//LivePushRyViewHolder.btn_close.setVisibility(View.GONE);
}
public void onLinkDRMicPkApply(UserBean userBean) {
if (mLiveSwLinkMicPkPresenter != null) {
mLiveSwLinkMicPkPresenter.onLinkDRMicPkApply(userBean);
}
}
@Override
public void changeToLeft() {
if (mPreView != null) {
LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) mPreView.getLayoutParams();
params.width = mPreView.getWidth() / 2;
params.height = DpUtil.dp2px(mPreView.getHeight());
params.topMargin = DpUtil.dp2px(130);
camera.setLayoutParams(params);
}
}
@Override
public void changeToBig() {
if (camera != null) {
LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) camera.getLayoutParams();
params.width = ViewGroup.LayoutParams.MATCH_PARENT;
params.height = ViewGroup.LayoutParams.MATCH_PARENT;
params.topMargin = 0;
camera.setLayoutParams(params);
}
if (mPreView1.getVisibility() == View.VISIBLE) {
mPreView1.removeAllViews();
mPreView1.setVisibility(View.GONE);
inputStreamList.clear();
inputStreamList1.clear();
}
}
public void closeButtonGone() {
btn_close.setVisibility(View.GONE);
}
public void showButtonGone() {
btn_close.setVisibility(View.VISIBLE);
}
@Override
public void toggleCamera() {
if (mCameraFront) {
mCameraFront = false;
} else {
mCameraFront = true;
}
swManager.switchCamera();
}
/**
* 打开关闭闪光灯
*/
@Override
public void toggleFlash() {
if (mCameraFront) {
ToastUtil.show(mContext.getString(R.string.live_open_flash));
return;
}
}
/**
* 开始推流
*
* @param pushUrl 推流地址
*/
@Override
public void startPush(String pushUrl) {
//开播成功,创建频道
if (swManager != null) {
swManager.createChannel(CommonAppConfig.SWToken, CommonAppConfig.getChannelName());
}
}
public boolean isPking() {
if (btn_close != null) {
return btn_close.getVisibility() == View.VISIBLE;
}
return false;
}
@Override
public void onPause() {
mPaused = true;
}
@Override
public void onResume() {
mPaused = false;
Log.i("摄像头", "onResume: " + isNeedOpenCamera);
if (isNeedOpenCamera) {
RCRTCEngine.getInstance().getDefaultVideoStream().startCamera(new IRCRTCResultDataCallback<Boolean>() {
@Override
public void onSuccess(Boolean data) {
//设置摄像头最大缩放比例
boolean zoom = RCRTCEngine.getInstance().getDefaultVideoStream().setCameraZoomFactor(1.0f);
// ToastUtil.show("设置比例="+zoom);
Log.i("摄像头", "onSuccess: 打开摄像头");
isNeedOpenCamera = false;
}
@Override
public void onFailed(RTCErrorCode errorCode) {
Log.i("摄像头", "onFailed: 打开摄像头失败 " + errorCode);
}
});
}
}
@Override
public void startBgm(String path) {
mBgmPath = path;
}
@Override
public void pauseBgm() {
}
@Override
public void resumeBgm() {
}
@Override
public void stopBgm() {
mBgmPath = null;
}
@Override
public void release() {
super.release();
Bus.getOff(this);
onDestroy();
LiveHttpUtil.cancel(LiveHttpConsts.LINK_MIC_TX_MIX_STREAM);
rtcRoom = null;
}
@Override
public void onPushEvent(int e, Bundle bundle) {
if (e == TXLiveConstants.PUSH_ERR_OPEN_CAMERA_FAIL) {
ToastUtil.show(mContext.getString(R.string.live_push_failed_1));
} else if (e == TXLiveConstants.PUSH_ERR_OPEN_MIC_FAIL) {
ToastUtil.show(mContext.getString(R.string.live_push_failed_2));
} else if (e == TXLiveConstants.PUSH_ERR_NET_DISCONNECT || e == TXLiveConstants.PUSH_ERR_INVALID_ADDRESS) {
L.e(TAG, "网络断开,推流失败------>");
} else if (e == TXLiveConstants.PUSH_WARNING_HW_ACCELERATION_FAIL) {
L.e(TAG, "不支持硬件加速------>");
} else if (e == TXLiveConstants.PUSH_EVT_FIRST_FRAME_AVAILABLE) {//预览成功
L.e(TAG, "mStearm--->初始化完毕");
if (mLivePushListener != null) {
mLivePushListener.onPreviewStart();
}
} else if (e == TXLiveConstants.PUSH_EVT_PUSH_BEGIN) {//推流成功
L.e(TAG, "mStearm--->推流成功");
if (!mStartPush) {
mStartPush = true;
if (mLivePushListener != null) {
mLivePushListener.onPushStart();
}
}
}
}
@Override
public void onNetStatus(Bundle bundle) {
}
private void aheadOfScheduleEndPK(String pkUid, String uname, String pkname) {
if (!isPk) {
return;
}
String ct = "由於 " + uname + " 退出比賽," + pkname + " 獲得勝利";
SocketSendBean seed_msg = new SocketSendBean().param("_method_", Constants.SOCKET_SYSTEM).param("action", 1).param("ct", ct);
seed_msg.create();
HttpClient.getInstance().get("fasongxiaoxiv2", "fasongxiaoxiv2").params("GroupId", "g" + pkUid).params("jsonstr", seed_msg.mResult.toString()).execute(new HttpCallback() {
@Override
public void onSuccess(int code, String msg, String[] info) {
HttpClient.getInstance().post("fasongxiaoxiv2", "fasongxiaoxiv2").params("GroupId", "g" + CommonAppConfig.getInstance().getUid()).params("jsonstr", seed_msg.mResult.toString()).execute(new HttpCallback() {
@Override
public void onSuccess(int code, String msg, String[] info) {
}
});
}
});
}
private Bitmap decodeResource(Resources resources, int id) {
TypedValue value = new TypedValue();
resources.openRawResource(id, value);
BitmapFactory.Options opts = new BitmapFactory.Options();
opts.inTargetDensity = value.density;
return BitmapFactory.decodeResource(resources, id, opts);
}
public static String getLiveStream() {
return ((LiveActivity) contexts).getStream();
}
private String getTxAppId() {
return ((LiveActivity) mContext).getTxAppId();
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void setSelectClarity(LivePushRyEvent event) {
if (rtcRoom != null)
rtcRoom.getLocalUser().publishDefaultLiveStreams(new IRCRTCResultDataCallback<RCRTCLiveInfo>() {
@Override
public void onSuccess(RCRTCLiveInfo rcrtcLiveInfo1) {
rcrtcLiveInfo = rcrtcLiveInfo1;
}
@Override
public void onFailed(RTCErrorCode rtcErrorCode) {
Log.e("ry", "rtcErrorCode" + rtcErrorCode);
}
});
}
public void setEnableBeauty(boolean flag) {
if (swManager != null) {
swManager.setEnableBeauty(flag);
}
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void updateSub(LiveAudienceEvent event) {
if (event.getType() == LIVE_PK_END) {
isPk = false;
} else if (event.getType() == LIVE_PK_ING) {
isPk = true;
}
Log.i("PK----->", "updateSub: " + isPk + "|" + event.getType());
}
@Override
public void onDestroy() {
super.onDestroy();
if (swManager != null) {
swManager.exitChannelAll();
}
}
public void closeLive(){
if (swManager != null) {
swManager.exitChannelAll();
}
}
public interface onDrPkJoinSuccessListener{
void joinSuccess1();
void joinSuccess2();
void joinSuccess3();
void joinSuccess4();
}
}