fix[声望升级-修复BUG]
This commit is contained in:
parent
9711b1f8d4
commit
d9b1149832
@ -1649,6 +1649,13 @@ public abstract class LiveActivity extends AbsActivity implements SocketMessageL
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onLinkDRMicPkQuit(String uid) {
|
||||||
|
if(mLiveSwLinkMicPkPresenter!=null){
|
||||||
|
mLiveSwLinkMicPkPresenter.onLinkDRMicPkQuit(uid);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isSoftInputShowed() {
|
public boolean isSoftInputShowed() {
|
||||||
if (mKeyBoardHeightUtil != null) {
|
if (mKeyBoardHeightUtil != null) {
|
||||||
|
@ -551,6 +551,11 @@ public class LiveAudienceActivity extends LiveActivity {
|
|||||||
//manager.getmLivePlayViewHolder().setDrMicInfo(u);
|
//manager.getmLivePlayViewHolder().setDrMicInfo(u);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onLinkDRMicPkQuit(String uid) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onLinkDRMicPkApplyOk(UserBean u) {
|
public void onLinkDRMicPkApplyOk(UserBean u) {
|
||||||
L.eSw("onLinkDRMicPkApplyOk:" + u.getId());
|
L.eSw("onLinkDRMicPkApplyOk:" + u.getId());
|
||||||
|
@ -1288,6 +1288,13 @@ public class LiveSwAnchorActivity extends LiveActivity implements LiveFunctionCl
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void linkDrMicRemoveListUid(String uid){
|
||||||
|
if (mLiveAnchorViewHolder != null) {
|
||||||
|
mLiveAnchorViewHolder.removeYaoqing(uid);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 发起多人主播连麦PK申请
|
* 发起多人主播连麦PK申请
|
||||||
*
|
*
|
||||||
@ -1655,6 +1662,7 @@ public class LiveSwAnchorActivity extends LiveActivity implements LiveFunctionCl
|
|||||||
break;
|
break;
|
||||||
case LEAVE_PK_SCORE:
|
case LEAVE_PK_SCORE:
|
||||||
if (mLiveSwLinkMicPkPresenter != null) {
|
if (mLiveSwLinkMicPkPresenter != null) {
|
||||||
|
mLiveSwLinkMicPkPresenter.closeButtonGone();
|
||||||
mLiveSwLinkMicPkPresenter.upDataPkScore(event.getPkScores(), event.getUid(), event.getTime());
|
mLiveSwLinkMicPkPresenter.upDataPkScore(event.getPkScores(), event.getUid(), event.getTime());
|
||||||
}
|
}
|
||||||
if (mLiveRoomViewHolder != null) {
|
if (mLiveRoomViewHolder != null) {
|
||||||
|
@ -490,7 +490,8 @@ public class LiveAudienceEvent extends BaseModel {
|
|||||||
SUD_GAME_CREATE_ROOM(75, "主播创建sud游戏"),
|
SUD_GAME_CREATE_ROOM(75, "主播创建sud游戏"),
|
||||||
PK_RANK_START(76, "PK排位赛开始"),
|
PK_RANK_START(76, "PK排位赛开始"),
|
||||||
GuardSpecialEffect(77, "PK排位赛开始"),
|
GuardSpecialEffect(77, "PK排位赛开始"),
|
||||||
LIVE_DIALOG_ANCHOR_TIPS(78, "主播公会赛tips");
|
LIVE_DIALOG_ANCHOR_TIPS(78, "主播公会赛tips"),
|
||||||
|
LIVE_REMOVE_LIVEUID(79, "主播退出多人PK");
|
||||||
|
|
||||||
private int type;
|
private int type;
|
||||||
private String name;
|
private String name;
|
||||||
|
@ -5,6 +5,7 @@ import static com.yunbao.common.Constants.SOCKET_LINK_MIC_PK;
|
|||||||
import static com.yunbao.common.Constants.SOCKET_LIVE_DRPK;
|
import static com.yunbao.common.Constants.SOCKET_LIVE_DRPK;
|
||||||
import static com.yunbao.live.activity.LiveSwAnchorActivity.PKing;
|
import static com.yunbao.live.activity.LiveSwAnchorActivity.PKing;
|
||||||
import static com.yunbao.live.activity.LiveSwAnchorActivity.isDRPK;
|
import static com.yunbao.live.activity.LiveSwAnchorActivity.isDRPK;
|
||||||
|
import static com.yunbao.live.activity.LiveSwAnchorActivity.mLiveAnchorViewHolder;
|
||||||
import static com.yunbao.live.views.LivePushSwViewHolder.btn_close;
|
import static com.yunbao.live.views.LivePushSwViewHolder.btn_close;
|
||||||
import static com.yunbao.live.views.LivePushSwViewHolder.rtcRoom;
|
import static com.yunbao.live.views.LivePushSwViewHolder.rtcRoom;
|
||||||
|
|
||||||
@ -457,6 +458,30 @@ public class LiveSwLinkMicPkPresenter implements View.OnClickListener {
|
|||||||
showDRApplyDialog(u);
|
showDRApplyDialog(u);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void onLinkDRMicPkQuit(String uid) {
|
||||||
|
HttpClient.getInstance().get("Live.getDRPKroom", "Live.getDRPKroom").params("uid", CommonAppConfig.getInstance().getUid()).params("roomid", mApplyUid).execute(new HttpCallback() {
|
||||||
|
@Override
|
||||||
|
public void onSuccess(int code, String msg, String[] info) {
|
||||||
|
if (info.length > 0) {
|
||||||
|
//退出所有直播間
|
||||||
|
livePushSwViewHolder.exitChannelDrPk(drPkbeans);
|
||||||
|
|
||||||
|
JSONObject obj = JSONObject.parseObject(info[0]);
|
||||||
|
drPkbeans = JSONObject.parseArray(obj.getString("userlist"), DrPkbean.class);
|
||||||
|
|
||||||
|
for (int i = 0; i < drPkbeans.size(); i++) {
|
||||||
|
if (!CommonAppConfig.getInstance().getUid().equals(String.valueOf(drPkbeans.get(i).getId()))) {
|
||||||
|
livePushSwViewHolder.setAnDrPkRtc(String.valueOf(drPkbeans.get(i).getId()), -1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(drPkbeans.size()==1){
|
||||||
|
mLiveAnchorViewHolder.closeEndPkBt();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 主播与主播PK 主播收到其他主播发过来的多人PK申请同意了的回调
|
* 主播与主播PK 主播收到其他主播发过来的多人PK申请同意了的回调
|
||||||
*/
|
*/
|
||||||
@ -466,14 +491,7 @@ public class LiveSwLinkMicPkPresenter implements View.OnClickListener {
|
|||||||
if (livePushSwViewHolder != null) {
|
if (livePushSwViewHolder != null) {
|
||||||
livePushSwViewHolder.setAnDrPkRtc(String.valueOf(u.getId()), -1);
|
livePushSwViewHolder.setAnDrPkRtc(String.valueOf(u.getId()), -1);
|
||||||
}
|
}
|
||||||
final SocketSendBean msg1 = new SocketSendBean().param("_method_", SOCKET_LIVE_DRPK)
|
final SocketSendBean msg1 = new SocketSendBean().param("_method_", SOCKET_LIVE_DRPK).param("action", 3).param("uname", CommonAppConfig.getInstance().getUserBean().getUserNiceName()).param("pkuid", CommonAppConfig.getInstance().getUid()).param("type", 3).param("uid", u.getId()).param("pkhead", CommonAppConfig.getInstance().getUserBean().getAvatar()).param("pkname", CommonAppConfig.getInstance().getUserBean().getUserNiceName());
|
||||||
.param("action", 3)
|
|
||||||
.param("uname", CommonAppConfig.getInstance().getUserBean().getUserNiceName())
|
|
||||||
.param("pkuid", CommonAppConfig.getInstance().getUid())
|
|
||||||
.param("type", 3)
|
|
||||||
.param("uid", u.getId())
|
|
||||||
.param("pkhead", CommonAppConfig.getInstance().getUserBean().getAvatar())
|
|
||||||
.param("pkname", CommonAppConfig.getInstance().getUserBean().getUserNiceName());
|
|
||||||
msg1.create();
|
msg1.create();
|
||||||
|
|
||||||
String targetId = "g" + CommonAppConfig.getInstance().getUid();
|
String targetId = "g" + CommonAppConfig.getInstance().getUid();
|
||||||
@ -498,6 +516,8 @@ public class LiveSwLinkMicPkPresenter implements View.OnClickListener {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
dRjoinOtherRoom(u);
|
dRjoinOtherRoom(u);
|
||||||
|
//展示结束连麦按钮
|
||||||
|
mLiveAnchorViewHolder.showEndPkBt();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -509,18 +529,18 @@ public class LiveSwLinkMicPkPresenter implements View.OnClickListener {
|
|||||||
mApplyUrl = u.getAvatar();
|
mApplyUrl = u.getAvatar();
|
||||||
mApplyNmae = u.getUserNiceName();
|
mApplyNmae = u.getUserNiceName();
|
||||||
if (by != 1) {
|
if (by != 1) {
|
||||||
Log.e("ry", "1"+u.getUserNiceName() + "单人收到" + u.getAvatar());
|
Log.e("ry", "1" + u.getUserNiceName() + "单人收到" + u.getAvatar());
|
||||||
if (mIsApplyDialogShow == false) {
|
if (mIsApplyDialogShow == false) {
|
||||||
if (u.isRandomPk()) {
|
if (u.isRandomPk()) {
|
||||||
Log.e("ry", "2"+u.getUserNiceName() + "单人收到" + u.getAvatar());
|
Log.e("ry", "2" + u.getUserNiceName() + "单人收到" + u.getAvatar());
|
||||||
showPkDialog(u);
|
showPkDialog(u);
|
||||||
} else {
|
} else {
|
||||||
Log.e("ry", "3"+u.getUserNiceName() + "单人收到" + u.getAvatar());
|
Log.e("ry", "3" + u.getUserNiceName() + "单人收到" + u.getAvatar());
|
||||||
showApplyDialog(u);
|
showApplyDialog(u);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
Log.e("ry", "4"+u.getUserNiceName() + "单人收到" + u.getAvatar());
|
Log.e("ry", "4" + u.getUserNiceName() + "单人收到" + u.getAvatar());
|
||||||
isPK(u);
|
isPK(u);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -553,14 +573,8 @@ public class LiveSwLinkMicPkPresenter implements View.OnClickListener {
|
|||||||
LiveSwAnchorActivity.isDRPK = 1;
|
LiveSwAnchorActivity.isDRPK = 1;
|
||||||
|
|
||||||
/*---------------------------------------------------------------- */
|
/*---------------------------------------------------------------- */
|
||||||
final SocketSendBean msg1 = new SocketSendBean().param("_method_", SOCKET_LINK_MIC_PK)
|
final SocketSendBean msg1 = new SocketSendBean().param("_method_", SOCKET_LINK_MIC_PK).param("action", 2) //回复PK申请 2
|
||||||
.param("action", 2) //回复PK申请 2
|
.param("uname", CommonAppConfig.getInstance().getUserBean().getUserNiceName()).param("pkuid", bean.getId()).param("uid", CommonAppConfig.getInstance().getUid()).param("uhead", CommonAppConfig.getInstance().getUserBean().getAvatar()).param("pkhead", CommonAppConfig.getInstance().getUserBean().getAvatar()).param("pkname", CommonAppConfig.getInstance().getUserBean().getUserNiceName());
|
||||||
.param("uname", CommonAppConfig.getInstance().getUserBean().getUserNiceName())
|
|
||||||
.param("pkuid", bean.getId())
|
|
||||||
.param("uid", CommonAppConfig.getInstance().getUid())
|
|
||||||
.param("uhead", CommonAppConfig.getInstance().getUserBean().getAvatar())
|
|
||||||
.param("pkhead", CommonAppConfig.getInstance().getUserBean().getAvatar())
|
|
||||||
.param("pkname", CommonAppConfig.getInstance().getUserBean().getUserNiceName());
|
|
||||||
if (RandomPkManager.getInstance().isRankModel()) {
|
if (RandomPkManager.getInstance().isRankModel()) {
|
||||||
L.eSw("排位赛");
|
L.eSw("排位赛");
|
||||||
msg1.param("is_ladders", "https://downs.yaoulive.com/rank_top_box.png");
|
msg1.param("is_ladders", "https://downs.yaoulive.com/rank_top_box.png");
|
||||||
@ -570,7 +584,7 @@ public class LiveSwLinkMicPkPresenter implements View.OnClickListener {
|
|||||||
System.out.println("PK回执 = " + msg1.toString());
|
System.out.println("PK回执 = " + msg1.toString());
|
||||||
Conversation.ConversationType conversationType = Conversation.ConversationType.PRIVATE;
|
Conversation.ConversationType conversationType = Conversation.ConversationType.PRIVATE;
|
||||||
TextMessage messageContent = TextMessage.obtain(msg1.mResult.toString());
|
TextMessage messageContent = TextMessage.obtain(msg1.mResult.toString());
|
||||||
io.rong.imlib.model.Message message = io.rong.imlib.model.Message.obtain( bean.getId(), conversationType, messageContent);
|
io.rong.imlib.model.Message message = io.rong.imlib.model.Message.obtain(bean.getId(), conversationType, messageContent);
|
||||||
|
|
||||||
RongIMClient.getInstance().sendMessage(message, null, null, new IRongCallback.ISendMessageCallback() {
|
RongIMClient.getInstance().sendMessage(message, null, null, new IRongCallback.ISendMessageCallback() {
|
||||||
@Override
|
@Override
|
||||||
@ -633,11 +647,13 @@ public class LiveSwLinkMicPkPresenter implements View.OnClickListener {
|
|||||||
if (obj != null) {
|
if (obj != null) {
|
||||||
if (obj.getString("ispk").equals("0")) {
|
if (obj.getString("ispk").equals("0")) {
|
||||||
isPK(u);
|
isPK(u);
|
||||||
}else{
|
} else {
|
||||||
ToastUtil.show(mContext.getString(R.string.pking_over));
|
ToastUtil.show(mContext.getString(R.string.pking_over));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}}});
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
} else {
|
} else {
|
||||||
if (mPkWaitCount < 0) {
|
if (mPkWaitCount < 0) {
|
||||||
final SocketSendBean msg1 = new SocketSendBean().param("_method_", SOCKET_LINK_MIC_PK).param("action", 8);
|
final SocketSendBean msg1 = new SocketSendBean().param("_method_", SOCKET_LINK_MIC_PK).param("action", 8);
|
||||||
@ -701,6 +717,7 @@ public class LiveSwLinkMicPkPresenter implements View.OnClickListener {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
mLiveAnchorViewHolder.closeEndPkBt();
|
||||||
livePushSwViewHolder.exitChannelDrPk(drPkbeans);
|
livePushSwViewHolder.exitChannelDrPk(drPkbeans);
|
||||||
leaveHandler.removeCallbacks(leaveRunnable);
|
leaveHandler.removeCallbacks(leaveRunnable);
|
||||||
}
|
}
|
||||||
@ -911,17 +928,9 @@ public class LiveSwLinkMicPkPresenter implements View.OnClickListener {
|
|||||||
drPkbeans = JSONObject.parseArray(obj.getString("userlist"), DrPkbean.class);
|
drPkbeans = JSONObject.parseArray(obj.getString("userlist"), DrPkbean.class);
|
||||||
for (int i = 0; i < drPkbeans.size(); i++) {
|
for (int i = 0; i < drPkbeans.size(); i++) {
|
||||||
if (!CommonAppConfig.getInstance().getUid().equals(String.valueOf(drPkbeans.get(i).getId()))) {
|
if (!CommonAppConfig.getInstance().getUid().equals(String.valueOf(drPkbeans.get(i).getId()))) {
|
||||||
final SocketSendBean msg1 = new SocketSendBean().param("_method_", SOCKET_LIVE_DRPK)
|
final SocketSendBean msg1 = new SocketSendBean().param("_method_", SOCKET_LIVE_DRPK).param("action", 2).param("uname", CommonAppConfig.getInstance().getUserBean().getUserNiceName()).param("pkuid", CommonAppConfig.getInstance().getUid()).param("msgtype", 2).param("uid", drPkbeans.get(i).getId()).param("uhead", CommonAppConfig.getInstance().getUserBean().getAvatar()).param("pkhead", CommonAppConfig.getInstance().getUserBean().getAvatar()).param("pkname", CommonAppConfig.getInstance().getUserBean().getUserNiceName());
|
||||||
.param("action", 2)
|
|
||||||
.param("uname", CommonAppConfig.getInstance().getUserBean().getUserNiceName())
|
|
||||||
.param("pkuid", CommonAppConfig.getInstance().getUid())
|
|
||||||
.param("msgtype", 2)
|
|
||||||
.param("uid", drPkbeans.get(i).getId())
|
|
||||||
.param("uhead", CommonAppConfig.getInstance().getUserBean().getAvatar())
|
|
||||||
.param("pkhead", CommonAppConfig.getInstance().getUserBean().getAvatar())
|
|
||||||
.param("pkname", CommonAppConfig.getInstance().getUserBean().getUserNiceName());
|
|
||||||
msg1.create();
|
msg1.create();
|
||||||
L.eSw("uiduiduiduiduiduiduiduid"+drPkbeans.get(i).getId());
|
L.eSw("uiduiduiduiduiduiduiduid" + drPkbeans.get(i).getId());
|
||||||
String targetId = String.valueOf(drPkbeans.get(i).getId());
|
String targetId = String.valueOf(drPkbeans.get(i).getId());
|
||||||
Conversation.ConversationType conversationType = Conversation.ConversationType.PRIVATE;
|
Conversation.ConversationType conversationType = Conversation.ConversationType.PRIVATE;
|
||||||
TextMessage messageContent = TextMessage.obtain(msg1.mResult.toString());
|
TextMessage messageContent = TextMessage.obtain(msg1.mResult.toString());
|
||||||
@ -953,16 +962,9 @@ public class LiveSwLinkMicPkPresenter implements View.OnClickListener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!CommonAppConfig.getInstance().getUid().equals(String.valueOf(drPkbeans.get(i).getId()))) {
|
if (!CommonAppConfig.getInstance().getUid().equals(String.valueOf(drPkbeans.get(i).getId()))) {
|
||||||
final SocketSendBean msg1 = new SocketSendBean().param("_method_", SOCKET_LIVE_DRPK)
|
final SocketSendBean msg1 = new SocketSendBean().param("_method_", SOCKET_LIVE_DRPK).param("action", 3).param("uname", CommonAppConfig.getInstance().getUserBean().getUserNiceName()).param("pkuid", CommonAppConfig.getInstance().getUid()).param("msgtype", 3).param("uid", drPkbeans.get(i).getId()).param("pkhead", CommonAppConfig.getInstance().getUserBean().getAvatar()).param("pkname", CommonAppConfig.getInstance().getUserBean().getUserNiceName());
|
||||||
.param("action", 3)
|
|
||||||
.param("uname", CommonAppConfig.getInstance().getUserBean().getUserNiceName())
|
|
||||||
.param("pkuid", CommonAppConfig.getInstance().getUid())
|
|
||||||
.param("msgtype", 3)
|
|
||||||
.param("uid", drPkbeans.get(i).getId())
|
|
||||||
.param("pkhead", CommonAppConfig.getInstance().getUserBean().getAvatar())
|
|
||||||
.param("pkname", CommonAppConfig.getInstance().getUserBean().getUserNiceName());
|
|
||||||
msg1.create();
|
msg1.create();
|
||||||
L.eSw("發送給自己直播間"+drPkbeans.get(i).getId());
|
L.eSw("發送給自己直播間" + drPkbeans.get(i).getId());
|
||||||
String targetId = "g" + CommonAppConfig.getInstance().getUid();
|
String targetId = "g" + CommonAppConfig.getInstance().getUid();
|
||||||
Conversation.ConversationType conversationType = Conversation.ConversationType.CHATROOM; //群聊
|
Conversation.ConversationType conversationType = Conversation.ConversationType.CHATROOM; //群聊
|
||||||
TextMessage messageContent = TextMessage.obtain(msg1.mResult.toString());
|
TextMessage messageContent = TextMessage.obtain(msg1.mResult.toString());
|
||||||
@ -987,17 +989,10 @@ public class LiveSwLinkMicPkPresenter implements View.OnClickListener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if(!mApplyUid.equals(String.valueOf(drPkbeans.get(i).getId()))&&!CommonAppConfig.getInstance().getUid().equals(String.valueOf(drPkbeans.get(i).getId()))){
|
if (!mApplyUid.equals(String.valueOf(drPkbeans.get(i).getId())) && !CommonAppConfig.getInstance().getUid().equals(String.valueOf(drPkbeans.get(i).getId()))) {
|
||||||
final SocketSendBean msg1 = new SocketSendBean().param("_method_", SOCKET_LIVE_DRPK)
|
final SocketSendBean msg1 = new SocketSendBean().param("_method_", SOCKET_LIVE_DRPK).param("action", 3).param("uname", CommonAppConfig.getInstance().getUserBean().getUserNiceName()).param("pkuid", CommonAppConfig.getInstance().getUid()).param("msgtype", 3).param("uid", drPkbeans.get(i).getId()).param("pkhead", CommonAppConfig.getInstance().getUserBean().getAvatar()).param("pkname", CommonAppConfig.getInstance().getUserBean().getUserNiceName());
|
||||||
.param("action", 3)
|
|
||||||
.param("uname", CommonAppConfig.getInstance().getUserBean().getUserNiceName())
|
|
||||||
.param("pkuid", CommonAppConfig.getInstance().getUid())
|
|
||||||
.param("msgtype", 3)
|
|
||||||
.param("uid", drPkbeans.get(i).getId())
|
|
||||||
.param("pkhead", CommonAppConfig.getInstance().getUserBean().getAvatar())
|
|
||||||
.param("pkname", CommonAppConfig.getInstance().getUserBean().getUserNiceName());
|
|
||||||
msg1.create();
|
msg1.create();
|
||||||
L.eSw("發送給其他主播直播间"+drPkbeans.get(i).getId());
|
L.eSw("發送給其他主播直播间" + drPkbeans.get(i).getId());
|
||||||
String targetId = "g" + drPkbeans.get(i).getId();
|
String targetId = "g" + drPkbeans.get(i).getId();
|
||||||
Conversation.ConversationType conversationType = Conversation.ConversationType.CHATROOM; //群聊
|
Conversation.ConversationType conversationType = Conversation.ConversationType.CHATROOM; //群聊
|
||||||
TextMessage messageContent = TextMessage.obtain(msg1.mResult.toString());
|
TextMessage messageContent = TextMessage.obtain(msg1.mResult.toString());
|
||||||
@ -1022,41 +1017,13 @@ public class LiveSwLinkMicPkPresenter implements View.OnClickListener {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
dRjoinOtherRoom(u);
|
dRjoinOtherRoom(u);
|
||||||
|
//展示结束连麦按钮
|
||||||
|
//设置多人PK 房主ROOM UID
|
||||||
|
mLiveAnchorViewHolder.setDrpkRoomId(mApplyUid);
|
||||||
|
mLiveAnchorViewHolder.showEndPkBt();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
/*for (int i = 0; i < users.size(); i++) {
|
|
||||||
JSONObject user = users.getJSONObject(i);
|
|
||||||
Log.e("ry", mApplyUid + "VS" + user.getString("id") + "列表");
|
|
||||||
if (!user.getString("id").equals(CommonAppConfig.getInstance().getUid())) {
|
|
||||||
if (!user.getString("id").equals(CommonAppConfig.getInstance().getUid()) && !user.getString("id").equals(u.getId())) {
|
|
||||||
*//**
|
|
||||||
* 向指定用户发送跨房间连麦请求
|
|
||||||
* <P>
|
|
||||||
* 1: inviterAutoMix为true时:
|
|
||||||
*
|
|
||||||
* 1.1:如果被邀请方在加入邀请方房间之前发布了资源,当被邀请方加入邀请者房间成功后,服务器会把被邀请方流资源合并到邀请方视图 ·(默认仅悬浮布局合流)上。
|
|
||||||
*
|
|
||||||
* 1.2:如果被邀请方在加入邀请方房间之前没有发布过资源,将会在被邀请方发布资源成功后,服务器会把被邀请方流资源合并到邀请方视图(默认仅悬浮布局合流)上。
|
|
||||||
*
|
|
||||||
* 2:无论为true或false,双方都可以使用{@link RCRTCLiveInfo#setMixConfig(RCRTCMixConfig, IRCRTCResultCallback)} 方法主动设置合流布局。一旦主动设置过合流布局,后续音视频直播过程中设置的自动合流参数将失效。
|
|
||||||
* <P/>
|
|
||||||
*//*
|
|
||||||
IMRTCManager.getInstance().requestJoinOtherRoom(user.getString("id"), false, "LiveDRPK1", new IRCRTCResultCallback() {
|
|
||||||
@Override
|
|
||||||
public void onSuccess() {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onFailed(RTCErrorCode errorCode) {
|
|
||||||
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}*/
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -1071,22 +1038,6 @@ public class LiveSwLinkMicPkPresenter implements View.OnClickListener {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
/*LiveHttpUtil.livePkCheckLive(u.getId(), "", "", new HttpCallback() {
|
|
||||||
@Override
|
|
||||||
public void onSuccess(int code, String msg, String[] info) {
|
|
||||||
if (code == 0 && info.length > 0) {
|
|
||||||
JSONObject obj = JSON.parseObject(info[0]);
|
|
||||||
if (obj != null) {
|
|
||||||
if (obj.getString("ispk").equals("0")) {
|
|
||||||
|
|
||||||
|
|
||||||
} else {
|
|
||||||
ToastUtil.show(mContext.getString(R.string.pking_over));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});*/
|
|
||||||
} else {
|
} else {
|
||||||
if (mPkWaitCount < 0) {
|
if (mPkWaitCount < 0) {
|
||||||
IMRTCManager.getInstance().responseJoinOtherRoom(u.getId(), false, "extra", new IRCRTCResultCallback() {
|
IMRTCManager.getInstance().responseJoinOtherRoom(u.getId(), false, "extra", new IRCRTCResultCallback() {
|
||||||
@ -1199,7 +1150,7 @@ public class LiveSwLinkMicPkPresenter implements View.OnClickListener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public void setPkUserInfoView(UserBean userBean){
|
public void setPkUserInfoView(UserBean userBean) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1431,7 +1382,7 @@ public class LiveSwLinkMicPkPresenter implements View.OnClickListener {
|
|||||||
* 主播与主播PK 所有人收到PK开始的回调
|
* 主播与主播PK 所有人收到PK开始的回调
|
||||||
*/
|
*/
|
||||||
public void onLinkMicPkStart(String pkUid, int i) {
|
public void onLinkMicPkStart(String pkUid, int i) {
|
||||||
L.eSw("onLinkMicPkStart pkUid "+pkUid+" "+i);
|
L.eSw("onLinkMicPkStart pkUid " + pkUid + " " + i);
|
||||||
Log.d("tag", i + "mPkTimeCount2");
|
Log.d("tag", i + "mPkTimeCount2");
|
||||||
mIsPk = true;
|
mIsPk = true;
|
||||||
hideSendPkWait();
|
hideSendPkWait();
|
||||||
@ -1440,7 +1391,7 @@ public class LiveSwLinkMicPkPresenter implements View.OnClickListener {
|
|||||||
mPkUid = pkUid;
|
mPkUid = pkUid;
|
||||||
mApplyUid = null;
|
mApplyUid = null;
|
||||||
mApplyStream = null;
|
mApplyStream = null;
|
||||||
isDRPK=1;
|
isDRPK = 1;
|
||||||
if (mLiveLinkMicPkViewHolder == null) {
|
if (mLiveLinkMicPkViewHolder == null) {
|
||||||
mLiveLinkMicPkViewHolder = new LiveLinkMicPkViewHolder(mContext, mPkContainer);
|
mLiveLinkMicPkViewHolder = new LiveLinkMicPkViewHolder(mContext, mPkContainer);
|
||||||
mLiveLinkMicPkViewHolder.addToParent();
|
mLiveLinkMicPkViewHolder.addToParent();
|
||||||
@ -1611,7 +1562,6 @@ public class LiveSwLinkMicPkPresenter implements View.OnClickListener {
|
|||||||
mLiveLinkMicPkViewHolder = null;
|
mLiveLinkMicPkViewHolder = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public void clearData() {
|
public void clearData() {
|
||||||
mIsApplyDialogShow = false;
|
mIsApplyDialogShow = false;
|
||||||
mAcceptPk = false;
|
mAcceptPk = false;
|
||||||
@ -1635,11 +1585,14 @@ public class LiveSwLinkMicPkPresenter implements View.OnClickListener {
|
|||||||
mLiveLinkMicPkViewHolder = null;
|
mLiveLinkMicPkViewHolder = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public void setSelfStream(String selfStream) {
|
public void setSelfStream(String selfStream) {
|
||||||
mSelfStream = selfStream;
|
mSelfStream = selfStream;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void closeButtonGone() {
|
||||||
|
mLiveAnchorViewHolder.closeEndPkBt();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 更新Pk分数
|
* 更新Pk分数
|
||||||
*/
|
*/
|
||||||
@ -1864,6 +1817,7 @@ public class LiveSwLinkMicPkPresenter implements View.OnClickListener {
|
|||||||
mHandler.sendEmptyMessageAtTime(WHAT_PK_TIME2, getNextSecondTime());
|
mHandler.sendEmptyMessageAtTime(WHAT_PK_TIME2, getNextSecondTime());
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
mLiveAnchorViewHolder.showEndPkBt();
|
||||||
livePushSwViewHolder.timeTitle.setVisibility(View.GONE);
|
livePushSwViewHolder.timeTitle.setVisibility(View.GONE);
|
||||||
if (mHandler != null) {
|
if (mHandler != null) {
|
||||||
mHandler.removeCallbacksAndMessages(null);
|
mHandler.removeCallbacksAndMessages(null);
|
||||||
|
@ -247,6 +247,8 @@ public interface SocketMessageListener {
|
|||||||
//接受多人PK
|
//接受多人PK
|
||||||
void onLinkDRMicPkApplyOk(UserBean u);
|
void onLinkDRMicPkApplyOk(UserBean u);
|
||||||
|
|
||||||
|
void onLinkDRMicPkQuit(String uid);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 主播与主播PK 所有人收到PK开始的回调
|
* 主播与主播PK 所有人收到PK开始的回调
|
||||||
*/
|
*/
|
||||||
|
@ -199,7 +199,7 @@ public class SocketSwClient {
|
|||||||
//用户连麦
|
//用户连麦
|
||||||
case Constants.LIAN_MAI:
|
case Constants.LIAN_MAI:
|
||||||
int actions = map.getIntValue("action");
|
int actions = map.getIntValue("action");
|
||||||
L.eSw("用户连麦:actions"+actions);
|
L.eSw("用户连麦:actions" + actions);
|
||||||
//主播邀请用户连麦消息
|
//主播邀请用户连麦消息
|
||||||
if (actions == 1) {
|
if (actions == 1) {
|
||||||
EventBus.getDefault().post("inviteMic");
|
EventBus.getDefault().post("inviteMic");
|
||||||
@ -304,7 +304,7 @@ public class SocketSwClient {
|
|||||||
// break;
|
// break;
|
||||||
case Constants.SOCKET_LIVE_DRPK_RANDOM:
|
case Constants.SOCKET_LIVE_DRPK_RANDOM:
|
||||||
case Constants.SOCKET_LIVE_DRPK://多人PK
|
case Constants.SOCKET_LIVE_DRPK://多人PK
|
||||||
L.eSw("map"+new Gson().toJson(map));
|
L.eSw("map" + new Gson().toJson(map));
|
||||||
int action3 = map.getIntValue("action");
|
int action3 = map.getIntValue("action");
|
||||||
//收到多人PK邀请
|
//收到多人PK邀请
|
||||||
if (action3 == 1) {
|
if (action3 == 1) {
|
||||||
@ -314,13 +314,13 @@ public class SocketSwClient {
|
|||||||
mListener.onLinkDRMicPkApply(u);
|
mListener.onLinkDRMicPkApply(u);
|
||||||
} else if (action3 == 2) {
|
} else if (action3 == 2) {
|
||||||
//收到对方同意多人PK邀请
|
//收到对方同意多人PK邀请
|
||||||
if("0".equals(map.getString("msgtype"))){
|
if ("0".equals(map.getString("msgtype"))) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
UserBean u = new UserBean();
|
UserBean u = new UserBean();
|
||||||
// u.setUserNiceName(map.getString("uname"));
|
// u.setUserNiceName(map.getString("uname"));
|
||||||
u.setId(map.getString("pkuid"));
|
u.setId(map.getString("pkuid"));
|
||||||
L.eSw("action3 == 2:"+u.getId());
|
L.eSw("action3 == 2:" + u.getId());
|
||||||
L.eSw("收到对方同意多人PK邀请");
|
L.eSw("收到对方同意多人PK邀请");
|
||||||
mListener.onLinkDRMicPkApplyOk(u);
|
mListener.onLinkDRMicPkApplyOk(u);
|
||||||
SWManager.get().setDimensions(3);//退出直播间,将分别率设置为 VD_840x480
|
SWManager.get().setDimensions(3);//退出直播间,将分别率设置为 VD_840x480
|
||||||
@ -334,7 +334,7 @@ public class SocketSwClient {
|
|||||||
// LiveAudienceActivity.getmLivePlayViewHolder().setPkview();
|
// LiveAudienceActivity.getmLivePlayViewHolder().setPkview();
|
||||||
Bus.get().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.SOCKET_LIVE_DRPK_SET_PK_VIEW));
|
Bus.get().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.SOCKET_LIVE_DRPK_SET_PK_VIEW));
|
||||||
}
|
}
|
||||||
} else if (action3 == 5) {
|
} else if (action3 == 5) {//结束PK
|
||||||
// endDRGif();
|
// endDRGif();
|
||||||
LiveRoomViewHolder.d_pk_view.setVisibility(View.GONE);
|
LiveRoomViewHolder.d_pk_view.setVisibility(View.GONE);
|
||||||
if (LiveSwAnchorActivity.mLiveAnchorViewHolder != null) {
|
if (LiveSwAnchorActivity.mLiveAnchorViewHolder != null) {
|
||||||
@ -353,20 +353,20 @@ public class SocketSwClient {
|
|||||||
/* if (LiveAudienceActivity.getmLivePlayViewHolder() != null) {
|
/* if (LiveAudienceActivity.getmLivePlayViewHolder() != null) {
|
||||||
LiveAudienceActivity.getmLivePlayViewHolder().setPkview();
|
LiveAudienceActivity.getmLivePlayViewHolder().setPkview();
|
||||||
}*/
|
}*/
|
||||||
if(livePushSwViewHolder==null){
|
isDRPK = 1;
|
||||||
if("4".equals(map.getString("msgtype"))){
|
if (livePushSwViewHolder == null) {
|
||||||
|
if ("4".equals(map.getString("msgtype"))) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
UserBean u = new UserBean();
|
UserBean u = new UserBean();
|
||||||
// u.setUserNiceName(map.getString("uname"));
|
// u.setUserNiceName(map.getString("uname"));
|
||||||
u.setId(map.getString("uid"));
|
u.setId(map.getString("uid"));
|
||||||
if(StringUtil.isEmpty(u.getId())){
|
if (StringUtil.isEmpty(u.getId())) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
L.eSw("通知用户 action3 == 3:"+u.getId());
|
L.eSw("通知用户 action3 == 3:" + u.getId());
|
||||||
mListener.onLinkDRMicPKToUser(u);
|
mListener.onLinkDRMicPKToUser(u);
|
||||||
Bus.get().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.SOCKET_LIVE_DRPK_SET_PK_VIEW));
|
Bus.get().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.SOCKET_LIVE_DRPK_SET_PK_VIEW));
|
||||||
isDRPK = 1;
|
|
||||||
}
|
}
|
||||||
} else if (action3 == 10) {
|
} else if (action3 == 10) {
|
||||||
//显示pk分数
|
//显示pk分数
|
||||||
@ -374,6 +374,13 @@ public class SocketSwClient {
|
|||||||
// LiveAudienceActivity.getmLivePlayViewHolder().setPkview();
|
// LiveAudienceActivity.getmLivePlayViewHolder().setPkview();
|
||||||
Bus.get().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.SOCKET_LIVE_DRPK_SET_PK_VIEW));
|
Bus.get().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.SOCKET_LIVE_DRPK_SET_PK_VIEW));
|
||||||
}
|
}
|
||||||
|
} else if (action3 == 7) {
|
||||||
|
L.eSw("主播退出直播間:"+map.getString("uid"));
|
||||||
|
mListener.onLinkDRMicPkQuit(map.getString("uid"));
|
||||||
|
//清除已邀请人数
|
||||||
|
if(LiveSwAnchorActivity.mLiveAnchorViewHolder!=null){
|
||||||
|
LiveSwAnchorActivity.mLiveAnchorViewHolder.removeYaoqing(map.getString("uid"));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
@ -1282,10 +1289,13 @@ public class SocketSwClient {
|
|||||||
u.setUserNiceName(map.getString("uname"));
|
u.setUserNiceName(map.getString("uname"));
|
||||||
u.setAvatar(map.getString("uhead"));
|
u.setAvatar(map.getString("uhead"));
|
||||||
u.setRandomPk("11".equals(map.getString("msgtype")));
|
u.setRandomPk("11".equals(map.getString("msgtype")));
|
||||||
mListener.onLinkMicPkApply(u, map.getString("stream"), "11".equals(map.getString("msgtype"))?2:1);
|
mListener.onLinkMicPkApply(u, map.getString("stream"), "11".equals(map.getString("msgtype")) ? 2 : 1);
|
||||||
break;
|
break;
|
||||||
case 2://收到对方主播PK回调
|
case 2://收到对方主播PK回调
|
||||||
L.eSw("收到对方主播PK回调");
|
L.eSw("收到对方主播PK回调");
|
||||||
|
/*if("1".equals(map.getString("random_pk"))){
|
||||||
|
|
||||||
|
}*/
|
||||||
RandomPkManager.getInstance().setPkStatus(RandomPkManager.PK_STATUS_START);
|
RandomPkManager.getInstance().setPkStatus(RandomPkManager.PK_STATUS_START);
|
||||||
mListener.onLinkMicToPk(map.getString("uid"), map.getString("uhead"), map.getString("uhead"));
|
mListener.onLinkMicToPk(map.getString("uid"), map.getString("uhead"), map.getString("uhead"));
|
||||||
mListener.onLinkMicPkStart(map.getString("uid"), map.getString("uhead"), map.getString("uname"), map.getString("is_ladders"));// mListener.onLinkMicPkStart(map.getString("uid"));
|
mListener.onLinkMicPkStart(map.getString("uid"), map.getString("uhead"), map.getString("uname"), map.getString("is_ladders"));// mListener.onLinkMicPkStart(map.getString("uid"));
|
||||||
@ -1340,15 +1350,13 @@ public class SocketSwClient {
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 10://系统发起PK回调
|
case 10://系统发起PK回调
|
||||||
if(livePushSwViewHolder!=null){
|
if (livePushSwViewHolder != null) {
|
||||||
final SocketSendBean msg1 = new SocketSendBean().param("_method_", SOCKET_LINK_MIC_PK)
|
final SocketSendBean msg1 = new SocketSendBean()
|
||||||
.param("action", 2)
|
.param("_method_", SOCKET_LINK_MIC_PK).param("action", 2)
|
||||||
.param("uname", CommonAppConfig.getInstance().getUserBean().getUserNiceName())
|
.param("uname", CommonAppConfig.getInstance().getUserBean().getUserNiceName()).param("pkuid", CommonAppConfig.getInstance().getUid())
|
||||||
.param("pkuid", CommonAppConfig.getInstance().getUid())
|
.param("msgtype", 2).param("uid", CommonAppConfig.getInstance().getUid())
|
||||||
.param("msgtype", 2)
|
|
||||||
.param("uid", CommonAppConfig.getInstance().getUid())
|
|
||||||
.param("uhead", CommonAppConfig.getInstance().getUserBean().getAvatar())
|
.param("uhead", CommonAppConfig.getInstance().getUserBean().getAvatar())
|
||||||
.param("random_pk", "1")
|
.param("is_auto ", "1")
|
||||||
.param("pkhead", CommonAppConfig.getInstance().getUserBean().getAvatar())
|
.param("pkhead", CommonAppConfig.getInstance().getUserBean().getAvatar())
|
||||||
.param("pkname", CommonAppConfig.getInstance().getUserBean().getUserNiceName());
|
.param("pkname", CommonAppConfig.getInstance().getUserBean().getUserNiceName());
|
||||||
msg1.create();
|
msg1.create();
|
||||||
@ -1376,65 +1384,25 @@ public class SocketSwClient {
|
|||||||
RandomPkManager.getInstance().setPkStatus(RandomPkManager.PK_STATUS_START);
|
RandomPkManager.getInstance().setPkStatus(RandomPkManager.PK_STATUS_START);
|
||||||
|
|
||||||
LiveNetManager.get(mContext).getLiveInfo(map.getString("uid"), new com.yunbao.common.http.base.HttpCallback<LiveInfoModel>() {
|
LiveNetManager.get(mContext).getLiveInfo(map.getString("uid"), new com.yunbao.common.http.base.HttpCallback<LiveInfoModel>() {
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(LiveInfoModel data) {
|
public void onSuccess(LiveInfoModel data) {
|
||||||
mListener.onLinkMicToPk(map.getString("uid"), data.getAvatar(), map.getString("uhead"));
|
mListener.onLinkMicToPk(map.getString("uid"), data.getAvatar(), map.getString("uhead"));
|
||||||
mListener.onLinkMicPkStart(map.getString("uid"), data.getAvatar(), map.getString("uname"), map.getString("is_ladders"));// mListener.onLinkMicPkStart(map.getString("uid"));
|
mListener.onLinkMicPkStart(map.getString("uid"), data.getAvatar(), map.getString("uname"), map.getString("is_ladders"));// mListener.onLinkMicPkStart(map.getString("uid"));
|
||||||
if (livePushSwViewHolder != null) {
|
if (livePushSwViewHolder != null) {
|
||||||
UserBean userBean = new UserBean();
|
UserBean userBean = new UserBean();
|
||||||
userBean.setId(map.getString("uid"));
|
userBean.setId(map.getString("uid"));
|
||||||
userBean.setAvatar(data.getAvatar());
|
userBean.setAvatar(data.getAvatar());
|
||||||
userBean.setUserNiceName(map.getString("uname"));
|
userBean.setUserNiceName(map.getString("uname"));
|
||||||
livePushSwViewHolder.setAnPkRtc(userBean);
|
livePushSwViewHolder.setAnPkRtc(userBean);
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onError(String error) {
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
);
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onError(String error) {
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
/*JSONObject msg1 = new JSONObject();
|
|
||||||
msg1.put("type", "autoLivePK");
|
|
||||||
msg1.put("uid", CommonAppConfig.getInstance().getUid());
|
|
||||||
msg1.put("pkuid", CommonAppConfig.getInstance().getUid());
|
|
||||||
msg1.put("pkname", CommonAppConfig.getInstance().getUserBean().getUserNiceName());
|
|
||||||
msg1.put("pkhead", CommonAppConfig.getInstance().getUserBean().getAvatar());
|
|
||||||
IMRTCManager.getInstance().requestJoinOtherRoom(map.getString("uid"), true, msg1.toString(), new IRCRTCResultCallback() {
|
|
||||||
@Override
|
|
||||||
public void onSuccess() {
|
|
||||||
if (WordUtil.isNewZh()) {
|
|
||||||
ToastUtil.show("邀请 " + map.getString("uid") + " 发送成功");
|
|
||||||
} else {
|
|
||||||
ToastUtil.show("invite " + map.getString("uid") + " successful");
|
|
||||||
}
|
|
||||||
runOnUiThread(new Runnable() {
|
|
||||||
@Override
|
|
||||||
public void run() {
|
|
||||||
dismiss();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onFailed(RTCErrorCode rtcErrorCode) {
|
|
||||||
runOnUiThread(new Runnable() {
|
|
||||||
@Override
|
|
||||||
public void run() {
|
|
||||||
dismiss();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
//todo 安卓端状态码说明文档:https://docs.rongcloud.cn/v4/views/rtc/call/code/android.html
|
|
||||||
Log.e("ry", rtcErrorCode + "aaaaaa" + CommonAppConfig.getInstance().getUid() + "VDSSSS" + map.getString("uid"));
|
|
||||||
if (WordUtil.isNewZh()) {
|
|
||||||
ToastUtil.show("邀请 " + map.getString("uid") + " 发送失败 :" + rtcErrorCode);
|
|
||||||
} else {
|
|
||||||
ToastUtil.show("invite " + map.getString("uid") + " lose :" + rtcErrorCode);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});*/
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -278,6 +278,11 @@ public class LivePlayKsyViewHolder extends LiveRoomPlayViewHolder {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void removeLiveUid(String uid) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void removeDetailView() {
|
public void removeDetailView() {
|
||||||
|
|
||||||
|
@ -425,6 +425,11 @@ public class LivePlayRyViewHolder extends LiveRoomPlayViewHolder {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void removeLiveUid(String uid) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void release() {
|
public void release() {
|
||||||
mEnd = true;
|
mEnd = true;
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
package com.yunbao.live.views;
|
package com.yunbao.live.views;
|
||||||
|
|
||||||
import static com.lzy.okgo.utils.HttpUtils.runOnUiThread;
|
|
||||||
|
|
||||||
import android.Manifest;
|
import android.Manifest;
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
@ -9,8 +8,6 @@ import android.content.Context;
|
|||||||
import android.graphics.Color;
|
import android.graphics.Color;
|
||||||
import android.media.AudioManager;
|
import android.media.AudioManager;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import android.os.Handler;
|
|
||||||
import android.os.Looper;
|
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.view.Gravity;
|
import android.view.Gravity;
|
||||||
@ -24,16 +21,12 @@ import android.widget.RelativeLayout;
|
|||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.google.android.exoplayer2.PlaybackException;
|
|
||||||
import com.google.android.exoplayer2.Player;
|
|
||||||
import com.google.android.exoplayer2.ui.StyledPlayerView;
|
import com.google.android.exoplayer2.ui.StyledPlayerView;
|
||||||
import com.google.android.exoplayer2.video.VideoSize;
|
|
||||||
import com.google.gson.Gson;
|
import com.google.gson.Gson;
|
||||||
import com.lxj.xpopup.XPopup;
|
import com.lxj.xpopup.XPopup;
|
||||||
import com.lxj.xpopup.core.BasePopupView;
|
import com.lxj.xpopup.core.BasePopupView;
|
||||||
import com.lxj.xpopup.interfaces.XPopupCallback;
|
import com.lxj.xpopup.interfaces.XPopupCallback;
|
||||||
import com.lzf.easyfloat.EasyFloat;
|
import com.lzf.easyfloat.EasyFloat;
|
||||||
import com.lzy.okserver.OkDownload;
|
|
||||||
import com.yunbao.common.CommonAppConfig;
|
import com.yunbao.common.CommonAppConfig;
|
||||||
import com.yunbao.common.Constants;
|
import com.yunbao.common.Constants;
|
||||||
import com.yunbao.common.bean.BaseModel;
|
import com.yunbao.common.bean.BaseModel;
|
||||||
@ -70,31 +63,10 @@ import org.greenrobot.eventbus.EventBus;
|
|||||||
import org.greenrobot.eventbus.Subscribe;
|
import org.greenrobot.eventbus.Subscribe;
|
||||||
import org.greenrobot.eventbus.ThreadMode;
|
import org.greenrobot.eventbus.ThreadMode;
|
||||||
|
|
||||||
import java.text.SimpleDateFormat;
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Date;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Locale;
|
|
||||||
|
|
||||||
import cn.rongcloud.rtc.api.RCRTCEngine;
|
|
||||||
import cn.rongcloud.rtc.api.RCRTCRemoteUser;
|
|
||||||
import cn.rongcloud.rtc.api.RCRTCRoom;
|
|
||||||
import cn.rongcloud.rtc.api.callback.IRCRTCResultCallback;
|
|
||||||
import cn.rongcloud.rtc.api.callback.IRCRTCRoomEventsListener;
|
|
||||||
import cn.rongcloud.rtc.api.callback.IRCRTCSwitchRoleDataCallback;
|
|
||||||
import cn.rongcloud.rtc.api.callback.IRCRTCVideoInputFrameListener;
|
|
||||||
import cn.rongcloud.rtc.api.stream.RCRTCInputStream;
|
import cn.rongcloud.rtc.api.stream.RCRTCInputStream;
|
||||||
import cn.rongcloud.rtc.api.stream.RCRTCLiveInfo;
|
|
||||||
import cn.rongcloud.rtc.api.stream.RCRTCOutputStream;
|
|
||||||
import cn.rongcloud.rtc.api.stream.RCRTCVideoInputStream;
|
|
||||||
import cn.rongcloud.rtc.api.stream.RCRTCVideoStreamConfig;
|
|
||||||
import cn.rongcloud.rtc.api.stream.RCRTCVideoView;
|
|
||||||
import cn.rongcloud.rtc.base.RCRTCMediaType;
|
|
||||||
import cn.rongcloud.rtc.base.RCRTCParamsType;
|
|
||||||
import cn.rongcloud.rtc.base.RCRTCRemoteVideoFrame;
|
|
||||||
import cn.rongcloud.rtc.base.RCRTCStreamType;
|
|
||||||
import cn.rongcloud.rtc.base.RTCErrorCode;
|
|
||||||
import cn.rongcloud.rtc.core.RendererCommon;
|
|
||||||
import io.agora.beautyapi.faceunity.agora.SWAuManager;
|
import io.agora.beautyapi.faceunity.agora.SWAuManager;
|
||||||
import io.reactivex.android.schedulers.AndroidSchedulers;
|
import io.reactivex.android.schedulers.AndroidSchedulers;
|
||||||
import io.reactivex.functions.Consumer;
|
import io.reactivex.functions.Consumer;
|
||||||
@ -116,9 +88,6 @@ public class LivePlaySwViewHolder extends LiveRoomPlayViewHolder {
|
|||||||
private ViewGroup mPkContainer;
|
private ViewGroup mPkContainer;
|
||||||
public StyledPlayerView mVideoView;
|
public StyledPlayerView mVideoView;
|
||||||
|
|
||||||
private FrameLayout playFrameLayout;
|
|
||||||
private FrameLayout playFrameLayout1;
|
|
||||||
|
|
||||||
private View mLoading, mLoading2;
|
private View mLoading, mLoading2;
|
||||||
private ImageView mCover;
|
private ImageView mCover;
|
||||||
private boolean mPaused;//是否切后台了
|
private boolean mPaused;//是否切后台了
|
||||||
@ -142,7 +111,6 @@ public class LivePlaySwViewHolder extends LiveRoomPlayViewHolder {
|
|||||||
private boolean userJoinLinkMic = false;//用户是否已加入房间
|
private boolean userJoinLinkMic = false;//用户是否已加入房间
|
||||||
|
|
||||||
//0未申请1申请中2连麦中
|
//0未申请1申请中2连麦中
|
||||||
RCRTCRoom rcrtcRoom;
|
|
||||||
String purl, srcUrl;
|
String purl, srcUrl;
|
||||||
SWAuManager swAuManager;
|
SWAuManager swAuManager;
|
||||||
String liveUid;
|
String liveUid;
|
||||||
@ -184,8 +152,6 @@ public class LivePlaySwViewHolder extends LiveRoomPlayViewHolder {
|
|||||||
EventBus.getDefault().register(this);
|
EventBus.getDefault().register(this);
|
||||||
Bus.getOn(this);
|
Bus.getOn(this);
|
||||||
mRoot = (ViewGroup) findViewById(R.id.root);
|
mRoot = (ViewGroup) findViewById(R.id.root);
|
||||||
playFrameLayout = (FrameLayout) findViewById(R.id.playView);
|
|
||||||
playFrameLayout1 = (FrameLayout) findViewById(R.id.playView1);
|
|
||||||
mSmallContainer = (ViewGroup) findViewById(R.id.small_container);
|
mSmallContainer = (ViewGroup) findViewById(R.id.small_container);
|
||||||
mLeftContainer = (ViewGroup) findViewById(R.id.left_container);
|
mLeftContainer = (ViewGroup) findViewById(R.id.left_container);
|
||||||
mRightContainer = (ViewGroup) findViewById(R.id.right_container);
|
mRightContainer = (ViewGroup) findViewById(R.id.right_container);
|
||||||
@ -275,6 +241,25 @@ public class LivePlaySwViewHolder extends LiveRoomPlayViewHolder {
|
|||||||
swAuManager.joinRoom(CommonAppConfig.getInstance().getUid(), CommonAppConfig.SWToken,liveUid, SWAuManager.getChannelName(liveUid));
|
swAuManager.joinRoom(CommonAppConfig.getInstance().getUid(), CommonAppConfig.SWToken,liveUid, SWAuManager.getChannelName(liveUid));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void removeLiveUid(String uid) {
|
||||||
|
//先结束PK
|
||||||
|
if(drMicUserList!=null){
|
||||||
|
List<UserBean> tempList = new ArrayList<>();
|
||||||
|
int index = -1;
|
||||||
|
for (int i = 0; i <drMicUserList.size(); i++) {
|
||||||
|
if(!drMicUserList.get(i).getId().equals(uid)){
|
||||||
|
tempList.add(drMicUserList.get(i));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//结束所有直播
|
||||||
|
endPk();
|
||||||
|
for (int i = 0; i < tempList.size(); i++) {
|
||||||
|
setDrMicInfo(tempList.get(i));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 开启单人PK
|
* 开启单人PK
|
||||||
*
|
*
|
||||||
@ -371,95 +356,8 @@ public class LivePlaySwViewHolder extends LiveRoomPlayViewHolder {
|
|||||||
if (detailsView1 != null) {
|
if (detailsView1 != null) {
|
||||||
dr1_preview.removeView(detailsView1);
|
dr1_preview.removeView(detailsView1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*new Handler().postDelayed(new Runnable() {
|
|
||||||
@Override
|
|
||||||
public void run() {
|
|
||||||
|
|
||||||
detailsView1 = LayoutInflater.from(mContext).inflate(R.layout.view_live_pk_details, null);
|
|
||||||
detailsLinearLayout1 = detailsView1.findViewById(R.id.lin_pk1);
|
|
||||||
linearGrade1 = detailsView1.findViewById(R.id.linear_grade1);
|
|
||||||
imageGrade1 = detailsView1.findViewById(R.id.image_grade1);
|
|
||||||
textGrade1 = detailsView1.findViewById(R.id.text_grade1);
|
|
||||||
textPkName1 = detailsView1.findViewById(R.id.text_pk_name1);
|
|
||||||
imageGrade1.setTag(String.valueOf(IMLoginManager.get(mContext).getUserInfo().getId()));
|
|
||||||
dr1_preview.addView(detailsView1);
|
|
||||||
detailsLinearLayout1.setVisibility(View.VISIBLE);
|
|
||||||
linearGrade1.setVisibility(View.GONE);
|
|
||||||
|
|
||||||
for (int j = 0; j < drPkbeanList.size(); j++) {
|
|
||||||
if (j == 0) {
|
|
||||||
L.eSw("j == 0:" + j);
|
|
||||||
//设置多人PK数据
|
|
||||||
if (detailsView2 != null) {
|
|
||||||
dr2_preview.removeView(detailsView2);
|
|
||||||
}
|
|
||||||
detailsView2 = LayoutInflater.from(mContext).inflate(R.layout.view_live_pk_details, null);
|
|
||||||
detailsLinearLayout2 = detailsView2.findViewById(R.id.lin_pk2);
|
|
||||||
linearGrade2 = detailsView2.findViewById(R.id.linear_grade2);
|
|
||||||
textPkName2 = detailsView2.findViewById(R.id.text_pk_name2);
|
|
||||||
imageGrade2 = detailsView2.findViewById(R.id.image_grade2);
|
|
||||||
textGrade2 = detailsView2.findViewById(R.id.text_grade2);
|
|
||||||
imageGrade2.setTag(String.valueOf(drPkbeanList.get(0).getId()));
|
|
||||||
textPkName2.setText(drPkbeanList.get(0).getUser_nicename());
|
|
||||||
dr2_preview.addView(detailsView2);
|
|
||||||
detailsLinearLayout2.setVisibility(View.VISIBLE);
|
|
||||||
linearGrade2.setVisibility(View.GONE);
|
|
||||||
} else if (j == 1) {
|
|
||||||
L.eSw("j == 1:" + j);
|
|
||||||
if (detailsView4 != null) {
|
|
||||||
dr4_preview.removeView(detailsView4);
|
|
||||||
}
|
|
||||||
detailsView4 = LayoutInflater.from(mContext).inflate(R.layout.view_live_pk_details, null);
|
|
||||||
detailsLinearLayout4 = detailsView4.findViewById(R.id.lin_pk4);
|
|
||||||
linearGrade4 = detailsView4.findViewById(R.id.linear_grade4);
|
|
||||||
textPkName4 = detailsView4.findViewById(R.id.text_pk_name4);
|
|
||||||
imageGrade4 = detailsView4.findViewById(R.id.image_grade4);
|
|
||||||
textGrade4 = detailsView4.findViewById(R.id.text_grade4);
|
|
||||||
imageGrade4.setTag(String.valueOf(drPkbeanList.get(1).getId()));
|
|
||||||
textPkName4.setText(drPkbeanList.get(1).getUser_nicename());
|
|
||||||
dr4_preview.addView(detailsView4);
|
|
||||||
detailsLinearLayout4.setVisibility(View.VISIBLE);
|
|
||||||
linearGrade4.setVisibility(View.GONE);
|
|
||||||
} else if (j == 2) {
|
|
||||||
L.eSw("j == 2:" + j);
|
|
||||||
|
|
||||||
if (detailsView4 != null) {
|
|
||||||
dr4_preview.removeView(detailsView4);
|
|
||||||
}
|
|
||||||
detailsView4 = LayoutInflater.from(mContext).inflate(R.layout.view_live_pk_details, null);
|
|
||||||
detailsLinearLayout4 = detailsView4.findViewById(R.id.lin_pk4);
|
|
||||||
linearGrade4 = detailsView4.findViewById(R.id.linear_grade4);
|
|
||||||
textPkName4 = detailsView4.findViewById(R.id.text_pk_name4);
|
|
||||||
imageGrade4 = detailsView4.findViewById(R.id.image_grade4);
|
|
||||||
textGrade4 = detailsView4.findViewById(R.id.text_grade4);
|
|
||||||
imageGrade4.setTag(String.valueOf(drPkbeanList.get(2).getId()));
|
|
||||||
textPkName4.setText(drPkbeanList.get(2).getUser_nicename());
|
|
||||||
dr4_preview.addView(detailsView4);
|
|
||||||
detailsLinearLayout4.setVisibility(View.VISIBLE);
|
|
||||||
linearGrade4.setVisibility(View.GONE);
|
|
||||||
|
|
||||||
if (detailsView3 != null) {
|
|
||||||
dr3_preview.removeView(detailsView3);
|
|
||||||
}
|
|
||||||
detailsView3 = LayoutInflater.from(mContext).inflate(R.layout.view_live_pk_details, null);
|
|
||||||
detailsLinearLayout3 = detailsView3.findViewById(R.id.lin_pk3);
|
|
||||||
linearGrade3 = detailsView3.findViewById(R.id.linear_grade3);
|
|
||||||
textPkName3 = detailsView3.findViewById(R.id.text_pk_name3);
|
|
||||||
imageGrade3 = detailsView3.findViewById(R.id.image_grade3);
|
|
||||||
textGrade3 = detailsView3.findViewById(R.id.text_grade3);
|
|
||||||
imageGrade3.setTag(String.valueOf(drPkbeanList.get(1).getId()));
|
|
||||||
textPkName3.setText(drPkbeanList.get(1).getUser_nicename());
|
|
||||||
dr3_preview.addView(detailsView3);
|
|
||||||
detailsLinearLayout3.setVisibility(View.VISIBLE);
|
|
||||||
linearGrade3.setVisibility(View.GONE);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}, 2000);*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 退出单人pk
|
* 退出单人pk
|
||||||
*
|
*
|
||||||
@ -507,7 +405,12 @@ public class LivePlaySwViewHolder extends LiveRoomPlayViewHolder {
|
|||||||
public void onSuccess(int code, String msg, String[] info) {
|
public void onSuccess(int code, String msg, String[] info) {
|
||||||
Log.e("ry", code + "热热热");
|
Log.e("ry", code + "热热热");
|
||||||
if (code == 0) {
|
if (code == 0) {
|
||||||
|
MicStatusManager.getInstance().setMicData(MicStatusManager.MIC_TYPE_OPEN, LiveActivity.mLiveUid);
|
||||||
|
AudioManager audioManager = (AudioManager) contexts.getSystemService(Context.AUDIO_SERVICE);
|
||||||
|
audioManager.setMode(AudioManager.MODE_IN_COMMUNICATION);
|
||||||
|
audioManager.setSpeakerphoneOn(true);
|
||||||
swAuManager.setMicAn(true);
|
swAuManager.setMicAn(true);
|
||||||
|
userJoinLinkMic = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@ -516,6 +419,8 @@ public class LivePlaySwViewHolder extends LiveRoomPlayViewHolder {
|
|||||||
private void endLiveMic() {
|
private void endLiveMic() {
|
||||||
L.eSw("endLiveMic");
|
L.eSw("endLiveMic");
|
||||||
swAuManager.setMicAn(false);
|
swAuManager.setMicAn(false);
|
||||||
|
userJoinLinkMic = false;
|
||||||
|
MicStatusManager.getInstance().clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -554,11 +459,11 @@ public class LivePlaySwViewHolder extends LiveRoomPlayViewHolder {
|
|||||||
this.videoLandscape = landscape;
|
this.videoLandscape = landscape;
|
||||||
if (landscape == 2) {
|
if (landscape == 2) {
|
||||||
Log.i(TAG, "还原9:16");
|
Log.i(TAG, "还原9:16");
|
||||||
RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) mVideoView.getLayoutParams();
|
RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) ry_view.getLayoutParams();
|
||||||
params.height = RelativeLayout.LayoutParams.MATCH_PARENT;
|
params.height = RelativeLayout.LayoutParams.MATCH_PARENT;
|
||||||
params.topMargin = 0;
|
params.topMargin = 0;
|
||||||
mVideoView.setLayoutParams(params);
|
ry_view.setLayoutParams(params);
|
||||||
mVideoView.requestLayout();
|
ry_view.requestLayout();
|
||||||
|
|
||||||
/* RelativeLayout.LayoutParams params1 = (RelativeLayout.LayoutParams) ry_view.getLayoutParams();
|
/* RelativeLayout.LayoutParams params1 = (RelativeLayout.LayoutParams) ry_view.getLayoutParams();
|
||||||
params1.height = RelativeLayout.LayoutParams.MATCH_PARENT;
|
params1.height = RelativeLayout.LayoutParams.MATCH_PARENT;
|
||||||
@ -573,12 +478,12 @@ public class LivePlaySwViewHolder extends LiveRoomPlayViewHolder {
|
|||||||
|
|
||||||
} else {
|
} else {
|
||||||
Log.i(TAG, "还原16:9");
|
Log.i(TAG, "还原16:9");
|
||||||
RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) mVideoView.getLayoutParams();
|
RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) ry_view.getLayoutParams();
|
||||||
params.height = vHeight;
|
params.height = vHeight;
|
||||||
params.topMargin = mContext.getResources().getDimensionPixelOffset(R.dimen.live_top);
|
params.topMargin = mContext.getResources().getDimensionPixelOffset(R.dimen.live_top);
|
||||||
params.addRule(RelativeLayout.ALIGN_TOP);
|
params.addRule(RelativeLayout.ALIGN_TOP);
|
||||||
mVideoView.setLayoutParams(params);
|
ry_view.setLayoutParams(params);
|
||||||
mVideoView.requestLayout();
|
ry_view.requestLayout();
|
||||||
|
|
||||||
/*RelativeLayout.LayoutParams params1 = (RelativeLayout.LayoutParams) ry_view.getLayoutParams();
|
/*RelativeLayout.LayoutParams params1 = (RelativeLayout.LayoutParams) ry_view.getLayoutParams();
|
||||||
params1.height = vHeight;
|
params1.height = vHeight;
|
||||||
@ -599,7 +504,7 @@ public class LivePlaySwViewHolder extends LiveRoomPlayViewHolder {
|
|||||||
super.setLiveEnterRoomNewModel(data);
|
super.setLiveEnterRoomNewModel(data);
|
||||||
isPk = data.getEnterRoomInfo().getIsconnection().equals("1");
|
isPk = data.getEnterRoomInfo().getIsconnection().equals("1");
|
||||||
if (isPk) {
|
if (isPk) {
|
||||||
setLiveBeanLandscape(1);
|
setLiveBeanLandscape(data.getLiveInfo().getLandscape());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1154,414 +1059,10 @@ public class LivePlaySwViewHolder extends LiveRoomPlayViewHolder {
|
|||||||
userinputStreamList.clear();
|
userinputStreamList.clear();
|
||||||
Log.e("ry", "主播同意了UsertoRY");
|
Log.e("ry", "主播同意了UsertoRY");
|
||||||
joinLiveMic();
|
joinLiveMic();
|
||||||
/*RCRTCRoomConfig roomConfig = RCRTCRoomConfig.Builder.create()
|
|
||||||
// 根据实际场景,选择音视频直播:LIVE_AUDIO_VIDEO 或音频直播:LIVE_AUDIO
|
|
||||||
.setRoomType(RCRTCRoomType.LIVE_AUDIO_VIDEO).setLiveRole(RCRTCLiveRole.AUDIENCE).build();
|
|
||||||
RCRTCEngine.getInstance().joinRoom(LiveActivity.mLiveUid, roomConfig, new IRCRTCResultDataCallback<RCRTCRoom>() {
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onSuccess(RCRTCRoom data) {
|
|
||||||
userJoinLinkMic = true;
|
|
||||||
rcrtcRoom = data;
|
|
||||||
subscribeMic(data);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onFailed(RTCErrorCode errorCode) {
|
|
||||||
Log.e("ry", LiveActivity.mLiveUid + errorCode + "");
|
|
||||||
if (errorCode.getValue() == 50007) {//userJoinLinkMic可能失效,直接leaveRoom
|
|
||||||
userJoinLinkMic = false;
|
|
||||||
RCRTCEngine.getInstance().leaveRoom(new IRCRTCResultCallback() {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onFailed(RTCErrorCode errorCode) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onSuccess() {
|
|
||||||
UsertoRY();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
ToastUtil.show("房间失败" + errorCode);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
});*/
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
private void subscribeMic(RCRTCRoom data) {
|
|
||||||
runOnUiThread(new Runnable() {
|
|
||||||
@Override
|
|
||||||
public void run() {
|
|
||||||
RCRTCEngine.getInstance().enableSpeaker(true);
|
|
||||||
//遍历远端用户发布的资源列表
|
|
||||||
Log.i(TAG, "软件资源数量:" + data.getLiveStreams().size());
|
|
||||||
for (RCRTCInputStream stream : data.getLiveStreams()) {
|
|
||||||
Log.i(TAG, "资源流 type: " + stream.getMediaType());
|
|
||||||
if (stream.getMediaType() == RCRTCMediaType.VIDEO) {
|
|
||||||
//暂停播放
|
|
||||||
|
|
||||||
//如果远端用户发布的是视频流,创建显示视图RCRTCVideoView,并添加到布局中显示
|
|
||||||
|
|
||||||
//如果远端用户发布的是视频流,创建显示视图RCRTCVideoView,并添加到布局中显示
|
|
||||||
RCRTCVideoView remoteView = new RCRTCVideoView(contexts);
|
|
||||||
((RCRTCVideoInputStream) stream).setVideoView(remoteView);
|
|
||||||
//todo 本demo只演示添加1个远端用户的视图
|
|
||||||
remoteView.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
|
|
||||||
remoteView.setScalingType(RendererCommon.ScalingType.SCALE_ASPECT_FIT);
|
|
||||||
ry_view.addView(remoteView);
|
|
||||||
Log.e("ry", stream.getMediaType() + "rcrtcOtherRoom成功 :" + data.getLiveStreams().size());
|
|
||||||
}
|
|
||||||
userinputStreamList.add(stream);
|
|
||||||
}
|
|
||||||
rcrtcRoom.getLocalUser().subscribeStreams(userinputStreamList, new IRCRTCResultCallback() {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onFailed(RTCErrorCode errorCode) {
|
|
||||||
Log.e("ry", userinputStreamList.size() + LiveActivity.mLiveUid + "订阅失败" + errorCode.toString());
|
|
||||||
ToastUtil.show(mContext.getString(R.string.live_pk_link_error));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onSuccess() {
|
|
||||||
Log.e("ry", "订阅资源成功");
|
|
||||||
// new Handler().postDelayed(new Runnable() {
|
|
||||||
// @Override
|
|
||||||
// public void run() {
|
|
||||||
toMic();
|
|
||||||
// }
|
|
||||||
// }, 3000);
|
|
||||||
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 主房间事件监听
|
|
||||||
* 详细说明请参考文档:https://www.rongcloud.cn/docs/api/android/rtclib_v4/cn/rongcloud/rtc/api/callback/IRCRTCRoomEventsListener.html
|
|
||||||
*/
|
|
||||||
public IRCRTCRoomEventsListener roomEventsListener = new IRCRTCRoomEventsListener() {
|
|
||||||
@Override
|
|
||||||
public void onRemoteUserPublishResource(RCRTCRemoteUser rcrtcRemoteUser, List<RCRTCInputStream> list) {
|
|
||||||
Log.e("ry", "远端来了" + list.size());
|
|
||||||
//TODO 按需在此订阅远端用户发布的资源
|
|
||||||
rcrtcRoom.getLocalUser().subscribeStreams(list, new IRCRTCResultCallback() {
|
|
||||||
@Override
|
|
||||||
public void onSuccess() {
|
|
||||||
Log.e("ry", "远端成功" + list.size());
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onFailed(RTCErrorCode rtcErrorCode) {
|
|
||||||
Log.e("ry", "远端失败" + list.size());
|
|
||||||
ToastUtil.show(mContext.getString(R.string.live_pk_link_error));
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onRemoteUserMuteAudio(RCRTCRemoteUser remoteUser, RCRTCInputStream stream, boolean mute) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onRemoteUserMuteVideo(RCRTCRemoteUser remoteUser, RCRTCInputStream stream, boolean mute) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onRemoteUserUnpublishResource(RCRTCRemoteUser remoteUser, List<RCRTCInputStream> streams) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onUserJoined(RCRTCRemoteUser remoteUser) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onUserLeft(RCRTCRemoteUser remoteUser) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onUserOffline(RCRTCRemoteUser remoteUser) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onPublishLiveStreams(List<RCRTCInputStream> streams) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onUnpublishLiveStreams(List<RCRTCInputStream> streams) {
|
|
||||||
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
public List<RCRTCInputStream> userinputStreamList1 = new ArrayList<>();
|
|
||||||
public List<RCRTCInputStream> userinputStreamList2 = new ArrayList<>();
|
|
||||||
|
|
||||||
public void toMic() {
|
|
||||||
RCRTCEngine.getInstance().getDefaultAudioStream().setAudioQuality(RCRTCParamsType.AudioQuality.MUSIC, RCRTCParamsType.AudioScenario.MUSIC_CLASSROOM);
|
|
||||||
userinputStreamList1.clear();
|
|
||||||
userinputStreamList2.clear();
|
|
||||||
RCRTCParamsType.RCRTCVideoResolution rcrtcVideoResolution = RCRTCParamsType.RCRTCVideoResolution.RESOLUTION_480_848;
|
|
||||||
int minRate = 200;
|
|
||||||
int maxRate = 900;
|
|
||||||
switch (IMLoginManager.get(mContext).getSelectClarity()) {
|
|
||||||
case 0:
|
|
||||||
rcrtcVideoResolution = landscape == 1 ? RCRTCParamsType.RCRTCVideoResolution.parseVideoResolution(960, 720) : RCRTCParamsType.RCRTCVideoResolution.RESOLUTION_480_848;
|
|
||||||
minRate = landscape == 1 ? 900 : 200;
|
|
||||||
maxRate = landscape == 1 ? 700 : 900;
|
|
||||||
break;
|
|
||||||
case 1:
|
|
||||||
rcrtcVideoResolution = landscape == 1 ? RCRTCParamsType.RCRTCVideoResolution.parseVideoResolution(960, 720) : RCRTCParamsType.RCRTCVideoResolution.RESOLUTION_720_1280;
|
|
||||||
minRate = landscape == 1 ? 900 : 250;
|
|
||||||
maxRate = landscape == 1 ? 700 : 2200;
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
rcrtcVideoResolution = landscape == 1 ? RCRTCParamsType.RCRTCVideoResolution.parseVideoResolution(960, 720) : RCRTCParamsType.RCRTCVideoResolution.RESOLUTION_1080_1920;
|
|
||||||
minRate = landscape == 1 ? 900 : 400;
|
|
||||||
maxRate = landscape == 1 ? 700 : 4000;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
// 示例代码使用480x640分辨率演示
|
|
||||||
RCRTCVideoStreamConfig config = RCRTCVideoStreamConfig.Builder.create()
|
|
||||||
//设置分辨率
|
|
||||||
.setVideoResolution(rcrtcVideoResolution)
|
|
||||||
//设置帧率
|
|
||||||
.setVideoFps(RCRTCParamsType.RCRTCVideoFps.Fps_24)
|
|
||||||
//设置最小码率,480P下推荐200
|
|
||||||
.setMinRate(minRate)
|
|
||||||
//设置最大码率,480P下推荐900
|
|
||||||
.setMaxRate(maxRate).build();
|
|
||||||
RCRTCEngine.getInstance().getDefaultVideoStream().setVideoConfig(config);
|
|
||||||
// 创建视图渲染视图
|
|
||||||
// RCRTCVideoView videoView = new RCRTCVideoView(contexts);
|
|
||||||
// RCRTCEngine.getInstance().getDefaultVideoStream().setVideoView(videoView);
|
|
||||||
//TODO 示例代码使用获取本地默认视频流、音频流演示
|
|
||||||
ArrayList<RCRTCOutputStream> streams = new ArrayList<>();
|
|
||||||
// streams.add(RCRTCEngine.getInstance().getDefaultVideoStream());
|
|
||||||
streams.add(RCRTCEngine.getInstance().getDefaultAudioStream());
|
|
||||||
if (landscape == 1) {
|
|
||||||
new Handler(Looper.getMainLooper()).post(new Runnable() {
|
|
||||||
@Override
|
|
||||||
public void run() {
|
|
||||||
setLiveBeanLandscape(1);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
}
|
|
||||||
// 开启摄像头
|
|
||||||
// RCRTCEngine.getInstance().getDefaultVideoStream().startCamera(null);
|
|
||||||
// 开始切换为主播身份
|
|
||||||
RCRTCEngine.getInstance().getRoom().getLocalUser().switchToBroadcaster(streams, new IRCRTCSwitchRoleDataCallback<RCRTCLiveInfo>() {
|
|
||||||
/**
|
|
||||||
* 当切换失败且SDK处于无法回退状态时回调,该角色已经无法使用当前角色继续进行音视频。
|
|
||||||
* SDK内部会退出房间并清理所有资源,该用户只能重新加入房间才能继续音视频。
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public void onKicked() {
|
|
||||||
Log.e("ry", "切换onKicked");
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onSuccess(RCRTCLiveInfo data) {
|
|
||||||
rcrtcRoom.registerRoomListener(roomEventsListener);
|
|
||||||
//该用户切换为主播成功,可以以主播身份进行音视频
|
|
||||||
Log.e("ry", "切换成功");
|
|
||||||
new Handler(Looper.getMainLooper()).post(new Runnable() {
|
|
||||||
public void run() {
|
|
||||||
if (onMicCallback != null) {
|
|
||||||
onMicCallback.onMikUpdate();
|
|
||||||
}
|
|
||||||
//遍历远端用户列表
|
|
||||||
for (int i = 0; i < rcrtcRoom.getRemoteUsers().size(); i++) {
|
|
||||||
Log.e("ry", rcrtcRoom.getRemoteUsers().get(i).getUserId() + "收到rcrtcOtherRoom" + rcrtcRoom.getRemoteUsers().size());
|
|
||||||
//遍历远端用户发布的资源列表
|
|
||||||
for (RCRTCInputStream stream : rcrtcRoom.getRemoteUsers().get(i).getStreams()) {
|
|
||||||
Log.e("ry", i + "收到" + stream.getMediaType() + "实打实打算" + rcrtcRoom.getRemoteUsers().get(i).getUserId());
|
|
||||||
if (stream.getMediaType() == RCRTCMediaType.VIDEO) {
|
|
||||||
if (userinputStreamList1.size() == 0) {
|
|
||||||
|
|
||||||
//如果远端用户发布的是视频流,创建显示视图RCRTCVideoView,并添加到布局中显示
|
|
||||||
RCRTCVideoView remoteView = new RCRTCVideoView(contexts);
|
|
||||||
((RCRTCVideoInputStream) stream).setStreamType(RCRTCStreamType.NORMAL);
|
|
||||||
((RCRTCVideoInputStream) stream).setVideoView(remoteView);
|
|
||||||
((RCRTCVideoInputStream) stream).setVideoFrameListener(new IRCRTCVideoInputFrameListener() {
|
|
||||||
@Override
|
|
||||||
public void onFrame(RCRTCRemoteVideoFrame videoFrame) {
|
|
||||||
String debugText = " 2、安卓主播开播, 安卓用户申请连麦后 ,安卓用户这边底部画面不全 :" + videoFrame.getFrameType().name() + "\n" + "rotation:" + videoFrame.getRotation() + "\n" + "timestampNs:" + videoFrame.getTimestampNs() + "\n" + "分辨率:" + videoFrame.getBuffer().getHeight() + "x" + videoFrame.getBuffer().getWidth() + "\n" + "当前时间:" + new SimpleDateFormat("HH:mm:ss", Locale.CHINA).format(new Date()) + "\n";
|
|
||||||
//Log.d("ry", "onFrame: " + debugText);
|
|
||||||
new Handler(Looper.getMainLooper()).post(() -> {
|
|
||||||
debugView.setText(debugText);
|
|
||||||
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
//todo 本demo只演示添加1个远端用户的视图
|
|
||||||
ry_view.removeAllViews();
|
|
||||||
remoteView.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
|
|
||||||
remoteView.setScalingType(RendererCommon.ScalingType.SCALE_ASPECT_FILL);
|
|
||||||
ry_view.addView(remoteView);
|
|
||||||
}
|
|
||||||
userinputStreamList1.add(stream);
|
|
||||||
}
|
|
||||||
userinputStreamList2.add(stream);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//开始订阅资源
|
|
||||||
rcrtcRoom.getLocalUser().subscribeStreams(userinputStreamList2, new IRCRTCResultCallback() {
|
|
||||||
@Override
|
|
||||||
public void onSuccess() {
|
|
||||||
Log.e("ry", "订阅资源成功");
|
|
||||||
MicStatusManager.getInstance().setMicData(MicStatusManager.MIC_TYPE_OPEN, LiveActivity.mLiveUid);
|
|
||||||
AudioManager audioManager = (AudioManager) contexts.getSystemService(Context.AUDIO_SERVICE);
|
|
||||||
RCRTCEngine.getInstance().enableSpeaker(true);
|
|
||||||
audioManager.setMode(AudioManager.MODE_IN_COMMUNICATION);
|
|
||||||
audioManager.setSpeakerphoneOn(true);
|
|
||||||
|
|
||||||
HttpClient.getInstance().get("live.joinDrLm", "live.joinDrLm").params("roomid", LiveActivity.mLiveUid).execute(new HttpCallback() {
|
|
||||||
@Override
|
|
||||||
public void onSuccess(int code, String msg, String[] info) {
|
|
||||||
Log.e("ry", code + "热热热");
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onFailed(RTCErrorCode rtcErrorCode) {
|
|
||||||
Log.e("ry", "订阅资源失败: " + rtcErrorCode.getReason());
|
|
||||||
ToastUtil.show(mContext.getString(R.string.live_pk_link_error));
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 当切换失败且不影响当前角色继续音视频时回调
|
|
||||||
* @param errorCode 失败错误码
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public void onFailed(RTCErrorCode errorCode) {
|
|
||||||
Log.e("ry", errorCode + "切换失败");
|
|
||||||
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setLoadViewListener(LoadingListener listener) {
|
public void setLoadViewListener(LoadingListener listener) {
|
||||||
super.setLoadViewListener(listener);
|
super.setLoadViewListener(listener);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void showLoadingDialog() {
|
|
||||||
if (PLAY_MODEL == PLAY_MODEL_480) return;
|
|
||||||
|
|
||||||
new DialogUitl.Builder(mContext).setTitle("網絡提示").setContent("系統監測到您的網絡不穩定,對此將清晰度變成了流暢,您可以在側邊菜單中的「清晰度」選擇調回。").setView(R.layout.dialog_simple_tip).setClickCallback(new DialogUitl.SimpleCallback() {
|
|
||||||
@Override
|
|
||||||
public void onConfirmClick(Dialog dialog, String content) {
|
|
||||||
dialog.dismiss();
|
|
||||||
}
|
|
||||||
}).build().show();
|
|
||||||
PLAY_MODEL = PLAY_MODEL_480;
|
|
||||||
String url = srcUrl;
|
|
||||||
if (videoLandscape == VIDEO_VERTICAL) {
|
|
||||||
url = url.replace(".flv", videoRatioVertical[PLAY_MODEL_480] + videoFps[0] + ".flv");
|
|
||||||
} else if (videoLandscape == VIDEO_HORIZONTAL) {
|
|
||||||
url = url.replace(".flv", videoRatioHorizontal[PLAY_MODEL_480] + videoFps[0] + ".flv");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private class ExoPlayerListener implements Player.Listener {
|
|
||||||
String TAG = "播放流";
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onPlayerError(PlaybackException error) {
|
|
||||||
Player.Listener.super.onPlayerError(error);
|
|
||||||
debugView.setText("播放出错code=" + error.errorCode + " msg=" + error.getErrorCodeName());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onVideoSizeChanged(VideoSize videoSize) {
|
|
||||||
Player.Listener.super.onVideoSizeChanged(videoSize);
|
|
||||||
Log.i(TAG, "onVideoSizeChanged: width = " + videoSize.width + " height = " + videoSize.height);
|
|
||||||
//ToastUtil.show("分辨率: 宽 = " + videoSize.width + " 高 = " + videoSize.height);
|
|
||||||
if (videoSize.height > videoSize.width) {
|
|
||||||
videoLandscape = VIDEO_VERTICAL;
|
|
||||||
} else {
|
|
||||||
videoLandscape = VIDEO_HORIZONTAL;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onPlaybackStateChanged(int playbackState) {
|
|
||||||
Player.Listener.super.onPlaybackStateChanged(playbackState);
|
|
||||||
if (playbackState == Player.STATE_BUFFERING) {
|
|
||||||
//showLoadingDialog();
|
|
||||||
mLoading.setVisibility(View.VISIBLE);
|
|
||||||
OkDownload.getInstance().pauseAll();
|
|
||||||
Log.i(TAG, "onPlaybackStateChanged: 缓存中");
|
|
||||||
} else {
|
|
||||||
mLoading.setVisibility(View.INVISIBLE);
|
|
||||||
Log.i(TAG, "onPlaybackStateChanged: 播放中");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onIsPlayingChanged(boolean isPlaying) {
|
|
||||||
Player.Listener.super.onIsPlayingChanged(isPlaying);
|
|
||||||
if (isPlaying) {
|
|
||||||
hideCover();
|
|
||||||
mLoading.setVisibility(View.INVISIBLE);
|
|
||||||
Log.i(TAG, "onIsPlayingChanged: 开始播放 | waitNextUrl = " + waitNextUrl);
|
|
||||||
OkDownload.getInstance().startAll();
|
|
||||||
if (loadingListener != null) {
|
|
||||||
loadingListener.onPlayer();
|
|
||||||
}
|
|
||||||
if (waitNextUrl != null) {
|
|
||||||
waitNextUrl = null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private int mPkTimeCount = 0;
|
|
||||||
|
|
||||||
|
|
||||||
public interface PlayViewLayoutInterface {
|
|
||||||
void playViewLayout(int width, int height);
|
|
||||||
}
|
|
||||||
|
|
||||||
private PlayViewLayoutInterface layoutInterface;
|
|
||||||
|
|
||||||
public void setLayoutInterface(PlayViewLayoutInterface layoutInterface) {
|
|
||||||
mVideoView.post(new Runnable() {
|
|
||||||
@Override
|
|
||||||
public void run() {
|
|
||||||
int width = mVideoView.getMeasuredWidth();
|
|
||||||
int height = mVideoView.getMeasuredHeight();
|
|
||||||
if (layoutInterface != null) {
|
|
||||||
layoutInterface.playViewLayout(width, height);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -94,6 +94,11 @@ public class LivePlayTxViewHolder extends LiveRoomPlayViewHolder implements ITXL
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void removeLiveUid(String uid) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void removeDetailView() {
|
public void removeDetailView() {
|
||||||
|
|
||||||
|
@ -26,6 +26,7 @@ import android.widget.LinearLayout;
|
|||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import com.google.gson.Gson;
|
||||||
import com.tencent.rtmp.ITXLivePushListener;
|
import com.tencent.rtmp.ITXLivePushListener;
|
||||||
import com.tencent.rtmp.TXLiveConstants;
|
import com.tencent.rtmp.TXLiveConstants;
|
||||||
import com.yunbao.common.CommonAppConfig;
|
import com.yunbao.common.CommonAppConfig;
|
||||||
@ -103,7 +104,7 @@ public class LivePushSwViewHolder extends AbsRyLivePushViewHolder implements ITX
|
|||||||
private boolean isPk = false;
|
private boolean isPk = false;
|
||||||
private boolean isNeedOpenCamera = false;
|
private boolean isNeedOpenCamera = false;
|
||||||
private SWManager swManager;
|
private SWManager swManager;
|
||||||
private String pkUid1;
|
private String pkUid1; //单人PK 对方主播 uid
|
||||||
|
|
||||||
//修改上面主播的头像
|
//修改上面主播的头像
|
||||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||||
@ -252,9 +253,9 @@ public class LivePushSwViewHolder extends AbsRyLivePushViewHolder implements ITX
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public void exitChannelDrPk(List<DrPkbean> drPkbeanList){
|
public void exitChannelDrPk(List<DrPkbean> drPkbeanList) {
|
||||||
for (int i = 0; i <drPkbeanList.size(); i++) {
|
for (int i = 0; i < drPkbeanList.size(); i++) {
|
||||||
if(!CommonAppConfig.getInstance().getUid().equals(String.valueOf(drPkbeanList.get(i).getId()))){
|
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().exitChannelToUid(Integer.parseInt(CommonAppConfig.getInstance().getUid()), String.valueOf(drPkbeanList.get(i).getId()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -275,8 +276,7 @@ public class LivePushSwViewHolder extends AbsRyLivePushViewHolder implements ITX
|
|||||||
swManager.updateMyChannelView((FrameLayout) mLeftContainer);
|
swManager.updateMyChannelView((FrameLayout) mLeftContainer);
|
||||||
//清除 mBigContainer 中的渲染
|
//清除 mBigContainer 中的渲染
|
||||||
mBigContainer.removeAllViews();
|
mBigContainer.removeAllViews();
|
||||||
|
showButtonGone();
|
||||||
btn_close.setVisibility(View.VISIBLE);
|
|
||||||
//设置对方主播的渲染视图 设置到 rightContainer
|
//设置对方主播的渲染视图 设置到 rightContainer
|
||||||
swManager.setPkContainer(mRightContainer);
|
swManager.setPkContainer(mRightContainer);
|
||||||
swManager.joinChannelEx(CommonAppConfig.getInstance().getUid(), CommonAppConfig.SWToken, u.getId(), SWAuManager.getChannelName(u.getId()));
|
swManager.joinChannelEx(CommonAppConfig.getInstance().getUid(), CommonAppConfig.SWToken, u.getId(), SWAuManager.getChannelName(u.getId()));
|
||||||
@ -288,57 +288,57 @@ public class LivePushSwViewHolder extends AbsRyLivePushViewHolder implements ITX
|
|||||||
.params("type", "1")
|
.params("type", "1")
|
||||||
.params("sign", "1")
|
.params("sign", "1")
|
||||||
.execute(new HttpCallback() {
|
.execute(new HttpCallback() {
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(int code, String msgs, String[] info) {
|
public void onSuccess(int code, String msgs, String[] info) {
|
||||||
if (code == 0) {
|
if (code == 0) {
|
||||||
HttpClient.getInstance().get("Livepk.setPK", "Livepk.setPK")
|
HttpClient.getInstance().get("Livepk.setPK", "Livepk.setPK")
|
||||||
.params("uid", CommonAppConfig.getInstance().getUid())
|
.params("uid", CommonAppConfig.getInstance().getUid())
|
||||||
.params("pkuid", u.getId())
|
.params("pkuid", u.getId())
|
||||||
.params("type", "1")
|
.params("type", "1")
|
||||||
.params("sign", "1")
|
.params("sign", "1")
|
||||||
.execute(new HttpCallback() {
|
.execute(new HttpCallback() {
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(int code, String msgs, String[] info) {
|
public void onSuccess(int code, String msgs, String[] info) {
|
||||||
if (code == 0) {
|
if (code == 0) {
|
||||||
L.eSw("555555555555555555555555555555555555");
|
L.eSw("555555555555555555555555555555555555");
|
||||||
final SocketSendBean msg1 = new SocketSendBean()
|
final SocketSendBean msg1 = new SocketSendBean()
|
||||||
.param("_method_", Constants.SOCKET_LINK_MIC_PK)
|
.param("_method_", Constants.SOCKET_LINK_MIC_PK)
|
||||||
.param("action", 4)
|
.param("action", 4)
|
||||||
.param("pkname", u.getUserNiceName())
|
.param("pkname", u.getUserNiceName())
|
||||||
.param("pkuid", u.getId())
|
.param("pkuid", u.getId())
|
||||||
.param("pkhead", u.getAvatar())
|
.param("pkhead", u.getAvatar())
|
||||||
.param("uname", u.getUserNiceName())
|
.param("uname", u.getUserNiceName())
|
||||||
.param("uhead", u.getAvatar())
|
.param("uhead", u.getAvatar())
|
||||||
.param("uid", CommonAppConfig.getInstance().getUid());
|
.param("uid", CommonAppConfig.getInstance().getUid());
|
||||||
msg1.create();
|
msg1.create();
|
||||||
|
|
||||||
Conversation.ConversationType conversationType = Conversation.ConversationType.CHATROOM;
|
Conversation.ConversationType conversationType = Conversation.ConversationType.CHATROOM;
|
||||||
TextMessage messageContent = TextMessage.obtain(msg1.mResult.toString());
|
TextMessage messageContent = TextMessage.obtain(msg1.mResult.toString());
|
||||||
Message message1 = Message.obtain("g" + CommonAppConfig.getInstance().getUid(), conversationType, messageContent);
|
Message message1 = Message.obtain("g" + CommonAppConfig.getInstance().getUid(), conversationType, messageContent);
|
||||||
|
|
||||||
RongIMClient.getInstance().sendMessage(message1, null, null, new IRongCallback.ISendMessageCallback() {
|
RongIMClient.getInstance().sendMessage(message1, null, null, new IRongCallback.ISendMessageCallback() {
|
||||||
@Override
|
@Override
|
||||||
public void onAttached(Message message) {
|
public void onAttached(Message message) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(Message message) {
|
public void onSuccess(Message message) {
|
||||||
Log.i("tx", "发送成功");
|
Log.i("tx", "发送成功");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onError(Message message, RongIMClient.ErrorCode errorCode) {
|
public void onError(Message message, RongIMClient.ErrorCode errorCode) {
|
||||||
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
mLiveSwLinkMicPkPresenter.setPkUserInfoView(u);
|
mLiveSwLinkMicPkPresenter.setPkUserInfoView(u);
|
||||||
}
|
}
|
||||||
@ -346,22 +346,23 @@ public class LivePushSwViewHolder extends AbsRyLivePushViewHolder implements ITX
|
|||||||
private int currentPosition = 0;
|
private int currentPosition = 0;
|
||||||
|
|
||||||
private String drpkUid3 = "";
|
private String drpkUid3 = "";
|
||||||
|
|
||||||
public int setAnDrPkRtc(String uid, int position) {
|
public int setAnDrPkRtc(String uid, int position) {
|
||||||
L.eSw("setAnDrPkRtc uid:"+uid+" position"+position);
|
L.eSw("setAnDrPkRtc uid:" + uid + " position" + position);
|
||||||
int temp= -1;
|
int temp = -1;
|
||||||
if (swManager != null && !StringUtil.isEmpty(uid)) {
|
if (swManager != null && !StringUtil.isEmpty(uid)) {
|
||||||
L.eSw("设置对方主播的视图 setAnDrPkRtc" + uid + "position:" + position);
|
L.eSw("设置对方主播的视图 setAnDrPkRtc" + uid + "position:" + position);
|
||||||
if(currentPosition==0){
|
if (currentPosition == 0) {
|
||||||
position = 2;
|
position = 2;
|
||||||
}
|
}
|
||||||
if(position==-1){
|
if (position == -1) {
|
||||||
temp = currentPosition+1;
|
temp = currentPosition + 1;
|
||||||
}else{
|
} else {
|
||||||
temp = position;
|
temp = position;
|
||||||
}
|
}
|
||||||
switch (temp) {
|
switch (temp) {
|
||||||
case 2:
|
case 2:
|
||||||
swManager.joinChannelDrEx(dr2_preview,CommonAppConfig.getInstance().getUid(), CommonAppConfig.SWToken, uid, SWAuManager.getChannelName(uid));
|
swManager.joinChannelDrEx(dr2_preview, CommonAppConfig.getInstance().getUid(), CommonAppConfig.SWToken, uid, SWAuManager.getChannelName(uid));
|
||||||
swManager.updateMyChannelView(dr1_preview);
|
swManager.updateMyChannelView(dr1_preview);
|
||||||
mBigContainer.removeAllViews();
|
mBigContainer.removeAllViews();
|
||||||
|
|
||||||
@ -370,17 +371,17 @@ public class LivePushSwViewHolder extends AbsRyLivePushViewHolder implements ITX
|
|||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
drpkUid3 = uid;
|
drpkUid3 = uid;
|
||||||
swManager.joinChannelDrEx(dr4_preview,CommonAppConfig.getInstance().getUid(), CommonAppConfig.SWToken, uid, SWAuManager.getChannelName(uid));
|
swManager.joinChannelDrEx(dr4_preview, CommonAppConfig.getInstance().getUid(), CommonAppConfig.SWToken, uid, SWAuManager.getChannelName(uid));
|
||||||
dr3_preview.setVisibility(View.GONE);
|
dr3_preview.setVisibility(View.GONE);
|
||||||
dr4_preview.setVisibility(View.VISIBLE);
|
dr4_preview.setVisibility(View.VISIBLE);
|
||||||
break;
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
dr3_preview.setVisibility(View.VISIBLE);
|
dr3_preview.setVisibility(View.VISIBLE);
|
||||||
//先退出这个主播的直播间,在进入该直播间,(视图问题暂时這樣處理)
|
//先退出这个主播的直播间,在进入该直播间,(视图问题暂时這樣處理)
|
||||||
swManager.exitChannelToUid(Integer.parseInt(CommonAppConfig.getInstance().getUid()),drpkUid3);
|
swManager.exitChannelToUid(Integer.parseInt(CommonAppConfig.getInstance().getUid()), drpkUid3);
|
||||||
swManager.joinChannelDrEx(dr3_preview,CommonAppConfig.getInstance().getUid(), CommonAppConfig.SWToken, drpkUid3, SWAuManager.getChannelName(drpkUid3));
|
swManager.joinChannelDrEx(dr3_preview, CommonAppConfig.getInstance().getUid(), CommonAppConfig.SWToken, drpkUid3, SWAuManager.getChannelName(drpkUid3));
|
||||||
|
|
||||||
swManager.joinChannelDrEx(dr4_preview,CommonAppConfig.getInstance().getUid(), CommonAppConfig.SWToken, uid, SWAuManager.getChannelName(uid));
|
swManager.joinChannelDrEx(dr4_preview, CommonAppConfig.getInstance().getUid(), CommonAppConfig.SWToken, uid, SWAuManager.getChannelName(uid));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
dr_pk_view.setVisibility(View.VISIBLE);
|
dr_pk_view.setVisibility(View.VISIBLE);
|
||||||
@ -389,7 +390,7 @@ public class LivePushSwViewHolder extends AbsRyLivePushViewHolder implements ITX
|
|||||||
return currentPosition;
|
return currentPosition;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void anchorClose(){
|
public void anchorClose() {
|
||||||
swManager.updateMyChannelView((FrameLayout) mBigContainer); //用户主动断开连麦再退出画面
|
swManager.updateMyChannelView((FrameLayout) mBigContainer); //用户主动断开连麦再退出画面
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -399,7 +400,6 @@ public class LivePushSwViewHolder extends AbsRyLivePushViewHolder implements ITX
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public void onLinkDRMicPkApply(UserBean userBean) {
|
public void onLinkDRMicPkApply(UserBean userBean) {
|
||||||
if (mLiveSwLinkMicPkPresenter != null) {
|
if (mLiveSwLinkMicPkPresenter != null) {
|
||||||
mLiveSwLinkMicPkPresenter.onLinkDRMicPkApply(userBean);
|
mLiveSwLinkMicPkPresenter.onLinkDRMicPkApply(userBean);
|
||||||
@ -439,6 +439,10 @@ public class LivePushSwViewHolder extends AbsRyLivePushViewHolder implements ITX
|
|||||||
btn_close.setVisibility(View.GONE);
|
btn_close.setVisibility(View.GONE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void showButtonGone() {
|
||||||
|
btn_close.setVisibility(View.VISIBLE);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void toggleCamera() {
|
public void toggleCamera() {
|
||||||
if (mCameraFront) {
|
if (mCameraFront) {
|
||||||
@ -471,86 +475,6 @@ public class LivePushSwViewHolder extends AbsRyLivePushViewHolder implements ITX
|
|||||||
if (swManager != null) {
|
if (swManager != null) {
|
||||||
swManager.createChannel(CommonAppConfig.SWToken, CommonAppConfig.getChannelName());
|
swManager.createChannel(CommonAppConfig.SWToken, CommonAppConfig.getChannelName());
|
||||||
}
|
}
|
||||||
if (rcrtcLiveInfo != null) {
|
|
||||||
rcrtcLiveInfo.addPublishStreamUrl(pushUrl, new IRCRTCResultDataCallback<String[]>() {
|
|
||||||
@Override
|
|
||||||
public void onSuccess(String[] data) {
|
|
||||||
//强制设置开播后cdn的尺寸竖屏,因为有时候PK异常退出,cdn没有还原竖屏。
|
|
||||||
if (rtcRoom != null) {
|
|
||||||
RCRTCMixConfig config = new RCRTCMixConfig();
|
|
||||||
RCRTCMixConfig.MediaConfig mediaConfig = new RCRTCMixConfig.MediaConfig();
|
|
||||||
config.setMediaConfig(mediaConfig);
|
|
||||||
//视频输出配置
|
|
||||||
RCRTCMixConfig.MediaConfig.VideoConfig videoConfig = new RCRTCMixConfig.MediaConfig.VideoConfig();
|
|
||||||
mediaConfig.setVideoConfig(videoConfig);
|
|
||||||
//大流视频的输出参数
|
|
||||||
RCRTCMixConfig.MediaConfig.VideoConfig.VideoLayout normal = new RCRTCMixConfig.MediaConfig.VideoConfig.VideoLayout();
|
|
||||||
|
|
||||||
//推荐宽、高、帧率参数值可以通过默认视频流的配置获取,也可以根据实际需求来自定义设置
|
|
||||||
//如不设置宽高值则服务端将使用默认宽高 360 * 640
|
|
||||||
//例:发布的视频分辨率为720 * 1280,如果不设置则观众端看到的视频分辨率为 360 * 640,
|
|
||||||
//所以如果想让观众端看到的视频分辨率和发布视频分辨率一致,则应从发布的视频流中获取分辨率配置并设置到 mediaConfig 中
|
|
||||||
//設置開播分辨率
|
|
||||||
//設置開播分辨率
|
|
||||||
RCRTCParamsType.RCRTCVideoResolution rcrtcVideoResolution = RCRTCParamsType.RCRTCVideoResolution.RESOLUTION_480_848;
|
|
||||||
int minRate = 200;
|
|
||||||
int maxRate = 900;
|
|
||||||
switch (IMLoginManager.get(mContext).getSelectClarity()) {
|
|
||||||
case 0:
|
|
||||||
rcrtcVideoResolution = RCRTCParamsType.RCRTCVideoResolution.RESOLUTION_480_848;
|
|
||||||
break;
|
|
||||||
case 1:
|
|
||||||
rcrtcVideoResolution = RCRTCParamsType.RCRTCVideoResolution.RESOLUTION_720_1280;
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
rcrtcVideoResolution = RCRTCParamsType.RCRTCVideoResolution.RESOLUTION_1080_1920;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
int width = rcrtcVideoResolution.getWidth();
|
|
||||||
int height = rcrtcVideoResolution.getHeight();
|
|
||||||
normal.setWidth(width); //视频宽
|
|
||||||
normal.setHeight(height); //视频高
|
|
||||||
normal.setFps(15); //视频帧率
|
|
||||||
videoConfig.setVideoLayout(normal);
|
|
||||||
//2. 合流画布设置
|
|
||||||
//(请参照画布和声音配置示例代码)
|
|
||||||
//3. 假设以画布设置的宽高为 300 * 300为例(应以真实设置的宽高为准),设置每个视频流小窗口的坐标及宽高
|
|
||||||
ArrayList<RCRTCMixConfig.CustomLayoutList.CustomLayout> list = new ArrayList<>();
|
|
||||||
config.setCustomLayouts(list);
|
|
||||||
//user1的视频流
|
|
||||||
RCRTCMixConfig.CustomLayoutList.CustomLayout videoLayout1 = new RCRTCMixConfig.CustomLayoutList.CustomLayout();
|
|
||||||
list.add(videoLayout1);
|
|
||||||
videoLayout1.setVideoStream(RCRTCEngine.getInstance().getDefaultVideoStream()); // RCRTCStream#MediaType 必须是Video
|
|
||||||
videoLayout1.setX(0); //X 坐标
|
|
||||||
videoLayout1.setY(0); //Y 坐标
|
|
||||||
videoLayout1.setWidth(720); // 视频窗口的宽
|
|
||||||
videoLayout1.setHeight(1280); // 视频窗口的高
|
|
||||||
//2. 合流画布设置
|
|
||||||
rcrtcLiveInfo.setMixConfig(config, new IRCRTCResultCallback() {
|
|
||||||
@Override
|
|
||||||
public void onSuccess() {
|
|
||||||
Log.e("ry", "混成功12");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onFailed(RTCErrorCode errorCode) {
|
|
||||||
Log.e("ry", "混失败" + errorCode);
|
|
||||||
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onFailed(RTCErrorCode errorCode) {
|
|
||||||
}
|
|
||||||
});
|
|
||||||
startCountDown();
|
|
||||||
} else {
|
|
||||||
ToastUtil.show("请稍后,准备中....");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isPking() {
|
public boolean isPking() {
|
||||||
@ -563,7 +487,6 @@ public class LivePushSwViewHolder extends AbsRyLivePushViewHolder implements ITX
|
|||||||
@Override
|
@Override
|
||||||
public void onPause() {
|
public void onPause() {
|
||||||
mPaused = true;
|
mPaused = true;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -122,6 +122,8 @@ public abstract class LiveRoomPlayViewHolder extends AbsViewHolder implements IL
|
|||||||
|
|
||||||
public abstract void initSwEngine(String liveUid);
|
public abstract void initSwEngine(String liveUid);
|
||||||
|
|
||||||
|
public abstract void removeLiveUid(String uid);
|
||||||
|
|
||||||
public abstract void removeDetailView();
|
public abstract void removeDetailView();
|
||||||
|
|
||||||
public abstract void setPkView(String liveUid);
|
public abstract void setPkView(String liveUid);
|
||||||
|
@ -25,6 +25,7 @@ import androidx.core.content.ContextCompat;
|
|||||||
|
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.blankj.utilcode.util.GsonUtils;
|
import com.blankj.utilcode.util.GsonUtils;
|
||||||
|
import com.google.gson.Gson;
|
||||||
import com.ms.banner.Banner;
|
import com.ms.banner.Banner;
|
||||||
import com.ms.banner.BannerConfig;
|
import com.ms.banner.BannerConfig;
|
||||||
import com.ms.banner.listener.OnBannerClickListener;
|
import com.ms.banner.listener.OnBannerClickListener;
|
||||||
@ -40,6 +41,7 @@ import com.yunbao.common.http.LiveHttpUtil;
|
|||||||
import com.yunbao.common.http.live.LiveNetManager;
|
import com.yunbao.common.http.live.LiveNetManager;
|
||||||
import com.yunbao.common.manager.IMLoginManager;
|
import com.yunbao.common.manager.IMLoginManager;
|
||||||
import com.yunbao.common.utils.Bus;
|
import com.yunbao.common.utils.Bus;
|
||||||
|
import com.yunbao.common.utils.L;
|
||||||
import com.yunbao.common.utils.StringUtil;
|
import com.yunbao.common.utils.StringUtil;
|
||||||
import com.yunbao.common.utils.ToastUtil;
|
import com.yunbao.common.utils.ToastUtil;
|
||||||
import com.yunbao.common.utils.WordUtil;
|
import com.yunbao.common.utils.WordUtil;
|
||||||
@ -87,6 +89,25 @@ public class LiveRyAnchorViewHolder extends AbsLiveViewHolder {
|
|||||||
private TextView mLiveTimeTextView;//主播的直播时长
|
private TextView mLiveTimeTextView;//主播的直播时长
|
||||||
private long mAnchorLiveTime;//主播直播时间
|
private long mAnchorLiveTime;//主播直播时间
|
||||||
private LiveRoomHandler mLiveRoomHandler;
|
private LiveRoomHandler mLiveRoomHandler;
|
||||||
|
private static LinearLayout btn_end_pk_dr;
|
||||||
|
private String drpkRoomId; //多人 PK 房主 roomUid
|
||||||
|
public void setDrpkRoomId(String drpkRoomId) {
|
||||||
|
this.drpkRoomId = drpkRoomId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void showEndPkBt(){
|
||||||
|
if(btn_end_pk_dr!=null){
|
||||||
|
if(btn_start_dr_pk_view.getVisibility()==View.GONE){
|
||||||
|
btn_end_pk_dr.setVisibility(View.VISIBLE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void closeEndPkBt(){
|
||||||
|
if(btn_end_pk_dr!=null){
|
||||||
|
btn_end_pk_dr.setVisibility(View.GONE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public LiveRyAnchorViewHolder(Context context, ViewGroup parentView) {
|
public LiveRyAnchorViewHolder(Context context, ViewGroup parentView) {
|
||||||
super(context, parentView);
|
super(context, parentView);
|
||||||
@ -108,6 +129,7 @@ public class LiveRyAnchorViewHolder extends AbsLiveViewHolder {
|
|||||||
Bus.getOn(this);
|
Bus.getOn(this);
|
||||||
mDrawable0 = ContextCompat.getDrawable(mContext, R.mipmap.icon_live_func_0);
|
mDrawable0 = ContextCompat.getDrawable(mContext, R.mipmap.icon_live_func_0);
|
||||||
mDrawable1 = ContextCompat.getDrawable(mContext, R.mipmap.icon_live_func_1);
|
mDrawable1 = ContextCompat.getDrawable(mContext, R.mipmap.icon_live_func_1);
|
||||||
|
btn_end_pk_dr = (LinearLayout) findViewById(R.id.btn_end_pk_dr);
|
||||||
mBtnFunction = (ImageView) findViewById(R.id.btn_function);
|
mBtnFunction = (ImageView) findViewById(R.id.btn_function);
|
||||||
btn_dr = (TextView) findViewById(R.id.btn_dr);
|
btn_dr = (TextView) findViewById(R.id.btn_dr);
|
||||||
mBanner = (Banner) findViewById(R.id.banner);
|
mBanner = (Banner) findViewById(R.id.banner);
|
||||||
@ -171,6 +193,22 @@ public class LiveRyAnchorViewHolder extends AbsLiveViewHolder {
|
|||||||
yaoqing.clear();
|
yaoqing.clear();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
btn_end_pk_dr.setOnClickListener(new View.OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(View view) {
|
||||||
|
closeEndPkBt();
|
||||||
|
HttpClient.getInstance().post("live.leaveDRPKroom", "live.leaveDRPKroom")
|
||||||
|
.params("roomid", drpkRoomId)
|
||||||
|
.params("uid", CommonAppConfig.getInstance().getUid())
|
||||||
|
.execute(new HttpCallback() {
|
||||||
|
@Override
|
||||||
|
public void onSuccess(int code, String msg, String[] info) {
|
||||||
|
L.eSw("live.leaveDRPKroom:code:" + code + " info" + new Gson().toJson(info));
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
btn_dr.setOnClickListener(new View.OnClickListener() {
|
btn_dr.setOnClickListener(new View.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
@ -204,6 +242,10 @@ public class LiveRyAnchorViewHolder extends AbsLiveViewHolder {
|
|||||||
yaoqing.put(numinda, numinda);
|
yaoqing.put(numinda, numinda);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void removeYaoqing(String numinda){
|
||||||
|
yaoqing.remove(numinda);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
if (!canClick()) {
|
if (!canClick()) {
|
||||||
|
@ -389,7 +389,7 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe
|
|||||||
liveHandler.removeCallbacks(loadTimeoutRunnableGone);
|
liveHandler.removeCallbacks(loadTimeoutRunnableGone);
|
||||||
if (mLivePlayViewHolder == null) {
|
if (mLivePlayViewHolder == null) {
|
||||||
if (isSw) {
|
if (isSw) {
|
||||||
mLivePlayViewHolder = new LivePlaySwViewHolder(mContext, playContainer, 1);
|
mLivePlayViewHolder = new LivePlaySwViewHolder(mContext, playContainer, mLiveBean.getLandscape());
|
||||||
} else {
|
} else {
|
||||||
mLivePlayViewHolder = new LivePlayRyViewHolder(mContext, playContainer, 1);
|
mLivePlayViewHolder = new LivePlayRyViewHolder(mContext, playContainer, 1);
|
||||||
}
|
}
|
||||||
@ -419,7 +419,7 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe
|
|||||||
mLiveAudienceViewHolder.subscribeActivityLifeCycle();
|
mLiveAudienceViewHolder.subscribeActivityLifeCycle();
|
||||||
} else {
|
} else {
|
||||||
mLivePlayViewHolder.initSwEngine(liveID);
|
mLivePlayViewHolder.initSwEngine(liveID);
|
||||||
mLivePlayViewHolder.setLiveBeanLandscape(1);
|
mLivePlayViewHolder.setLiveBeanLandscape(mLiveBean.getLandscape());
|
||||||
mLiveLinkMicPresenter.setLiveSdk(mLiveSDK);
|
mLiveLinkMicPresenter.setLiveSdk(mLiveSDK);
|
||||||
mLiveLinkMicAnchorPresenter.setLiveSdk(mLiveSDK);
|
mLiveLinkMicAnchorPresenter.setLiveSdk(mLiveSDK);
|
||||||
}
|
}
|
||||||
@ -983,6 +983,11 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe
|
|||||||
mLiveRyLinkMicPkPresenter.release();
|
mLiveRyLinkMicPkPresenter.release();
|
||||||
mLiveRyLinkMicPkPresenter = null;
|
mLiveRyLinkMicPkPresenter = null;
|
||||||
}
|
}
|
||||||
|
if(mLiveSwLinkMicPkPresenter!=null){
|
||||||
|
mLiveSwLinkMicPkPresenter.clearData();
|
||||||
|
mLiveSwLinkMicPkPresenter.release();
|
||||||
|
mLiveSwLinkMicPkPresenter = null;
|
||||||
|
}
|
||||||
if(mLivePlayViewHolder!=null){
|
if(mLivePlayViewHolder!=null){
|
||||||
mLivePlayViewHolder.stopPlay2();
|
mLivePlayViewHolder.stopPlay2();
|
||||||
}
|
}
|
||||||
@ -1705,6 +1710,12 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe
|
|||||||
//mLivePlayViewHolder.setDrMicInfo(u);
|
//mLivePlayViewHolder.setDrMicInfo(u);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onLinkDRMicPkQuit(String uid) {
|
||||||
|
L.eSw("onLinkDRMicPkQuit:"+uid);
|
||||||
|
mLivePlayViewHolder.removeLiveUid(uid);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 主播与主播PK 所有人收到PK开始的回调
|
* 主播与主播PK 所有人收到PK开始的回调
|
||||||
*/
|
*/
|
||||||
|
@ -44,7 +44,7 @@
|
|||||||
android:layout_height="270dp"
|
android:layout_height="270dp"
|
||||||
android:layout_marginTop="130dp"
|
android:layout_marginTop="130dp"
|
||||||
android:orientation="horizontal"
|
android:orientation="horizontal"
|
||||||
android:visibility="visible">
|
android:visibility="gone">
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
|
@ -96,6 +96,29 @@
|
|||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/btn_end_pk_dr"
|
||||||
|
android:layout_width="40dp"
|
||||||
|
android:layout_height="40dp"
|
||||||
|
android:layout_gravity="right"
|
||||||
|
android:layout_marginRight="10dp"
|
||||||
|
android:layout_marginLeft="10dp"
|
||||||
|
android:layout_marginTop="10dp"
|
||||||
|
android:visibility="gone"
|
||||||
|
android:layout_marginBottom="10dp"
|
||||||
|
android:background="@mipmap/btn_white"
|
||||||
|
android:gravity="center">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:gravity="center"
|
||||||
|
android:text="@string/end_pk"
|
||||||
|
android:textColor="#ffb1b1b1"
|
||||||
|
android:textSize="10sp" />
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:id="@+id/btn_link_mic"
|
android:id="@+id/btn_link_mic"
|
||||||
|
Loading…
Reference in New Issue
Block a user