房间 关闭PK模式 不主动关麦
This commit is contained in:
@@ -651,7 +651,10 @@ open class BaseRoomFragment<V : IBaseRoomView?, P : BaseRoomPresenter<V>?> :
|
|||||||
} else {
|
} else {
|
||||||
val roomQueueInfo = AvRoomDataManager.get()
|
val roomQueueInfo = AvRoomDataManager.get()
|
||||||
.getRoomQueueMemberInfoByAccount(myUid.toString())
|
.getRoomQueueMemberInfoByAccount(myUid.toString())
|
||||||
if (roomQueueInfo?.mChatRoomMember != null
|
if (roomQueueInfo?.mChatRoomMember?.isNoProhibitMic == true && roomQueueInfo.mRoomMicInfo?.isMicMute == false) {
|
||||||
|
bottomView.setMicBtnEnable(true)
|
||||||
|
bottomView.setMicBtnOpen(true)
|
||||||
|
} else if (roomQueueInfo?.mChatRoomMember != null
|
||||||
&& myUid.toString() == roomQueueInfo.mChatRoomMember.account
|
&& myUid.toString() == roomQueueInfo.mChatRoomMember.account
|
||||||
&& roomQueueInfo.mRoomMicInfo?.isMicMute == true
|
&& roomQueueInfo.mRoomMicInfo?.isMicMute == true
|
||||||
) {
|
) {
|
||||||
|
@@ -1455,7 +1455,8 @@ public final class IMNetEaseManager {
|
|||||||
AvRoomModel.get().updateMyMicQueue(
|
AvRoomModel.get().updateMyMicQueue(
|
||||||
AvRoomDataManager.get().getMicPosition(AuthModel.get().getCurrentUid()),
|
AvRoomDataManager.get().getMicPosition(AuthModel.get().getCurrentUid()),
|
||||||
String.valueOf(AvRoomDataManager.get().mCurrentRoomInfo.getRoomId()),
|
String.valueOf(AvRoomDataManager.get().mCurrentRoomInfo.getRoomId()),
|
||||||
UserModel.get().getCacheLoginUserInfo()
|
UserModel.get().getCacheLoginUserInfo(),
|
||||||
|
!AudioEngineManager.get().isMute()
|
||||||
)
|
)
|
||||||
.subscribe();
|
.subscribe();
|
||||||
}
|
}
|
||||||
@@ -2146,8 +2147,10 @@ public final class IMNetEaseManager {
|
|||||||
if (AvRoomDataManager.get().isOwner(chatRoomMember.getAccount())) {
|
if (AvRoomDataManager.get().isOwner(chatRoomMember.getAccount())) {
|
||||||
//开麦
|
//开麦
|
||||||
AudioEngineManager.get().setRole(Constants.CLIENT_ROLE_BROADCASTER);
|
AudioEngineManager.get().setRole(Constants.CLIENT_ROLE_BROADCASTER);
|
||||||
|
if (!roomQueueInfo.mChatRoomMember.isNoProhibitMic()) {
|
||||||
AudioEngineManager.get().setMute(roomQueueInfo.mRoomMicInfo.isMicMute() || AvRoomDataManager.get().mIsNeedOpenMic);
|
AudioEngineManager.get().setMute(roomQueueInfo.mRoomMicInfo.isMicMute() || AvRoomDataManager.get().mIsNeedOpenMic);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
noticeUpMic(Integer.parseInt(key), chatRoomMember.getAccount());
|
noticeUpMic(Integer.parseInt(key), chatRoomMember.getAccount());
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
@@ -568,12 +568,15 @@ public class RoomBaseModel extends BaseModel implements IRoomBaseModel {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public Single<String> updateMyMicQueue(int micPosition, String roomId, UserInfo userInfo) {
|
public Single<String> updateMyMicQueue(int micPosition, String roomId, UserInfo userInfo) {
|
||||||
|
return updateMyMicQueue(micPosition, roomId, userInfo);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Single<String> updateMyMicQueue(int micPosition, String roomId, UserInfo userInfo, boolean isNoProhibitMic) {
|
||||||
if (userInfo.getUid() != AuthModel.get().getCurrentUid()) {
|
if (userInfo.getUid() != AuthModel.get().getCurrentUid()) {
|
||||||
return Single.error(new Throwable("该方法只能更新自己的麦序,不要更新别人的麦序信息。"));
|
return Single.error(new Throwable("该方法只能更新自己的麦序,不要更新别人的麦序信息。"));
|
||||||
}
|
}
|
||||||
return Single.create(new SingleOnSubscribe<String>() {
|
return Single.create((SingleOnSubscribe<String>) e ->
|
||||||
@Override
|
|
||||||
public void subscribe(SingleEmitter<String> e) throws Exception {
|
|
||||||
updateQueueEx(micPosition, roomId, new CallBack<String>() {
|
updateQueueEx(micPosition, roomId, new CallBack<String>() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -588,12 +591,9 @@ public class RoomBaseModel extends BaseModel implements IRoomBaseModel {
|
|||||||
e.onError(new Throwable("更新麦序额外字段失败 code:" + code));
|
e.onError(new Throwable("更新麦序额外字段失败 code:" + code));
|
||||||
}
|
}
|
||||||
|
|
||||||
}, userInfo);
|
}, userInfo, isNoProhibitMic))
|
||||||
}
|
|
||||||
})
|
|
||||||
.subscribeOn(AndroidSchedulers.mainThread())
|
.subscribeOn(AndroidSchedulers.mainThread())
|
||||||
.observeOn(AndroidSchedulers.mainThread());
|
.observeOn(AndroidSchedulers.mainThread());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -602,6 +602,10 @@ public class RoomBaseModel extends BaseModel implements IRoomBaseModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected void updateQueueEx(int micPosition, String roomId, final CallBack<String> callBack, UserInfo userInfo) {
|
protected void updateQueueEx(int micPosition, String roomId, final CallBack<String> callBack, UserInfo userInfo) {
|
||||||
|
updateQueueEx(micPosition, roomId, callBack, userInfo, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void updateQueueEx(int micPosition, String roomId, final CallBack<String> callBack, UserInfo userInfo, boolean isNoProhibitMic) {
|
||||||
JSONObject contentJsonObj = new JSONObject();
|
JSONObject contentJsonObj = new JSONObject();
|
||||||
contentJsonObj.put("uid", String.valueOf(userInfo.getUid()));
|
contentJsonObj.put("uid", String.valueOf(userInfo.getUid()));
|
||||||
contentJsonObj.put("nick", userInfo.getNick());
|
contentJsonObj.put("nick", userInfo.getNick());
|
||||||
@@ -633,6 +637,8 @@ public class RoomBaseModel extends BaseModel implements IRoomBaseModel {
|
|||||||
contentJsonObj.put("preventKick", true);
|
contentJsonObj.put("preventKick", true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
contentJsonObj.put("isNoProhibitMic", isNoProhibitMic);
|
||||||
|
|
||||||
NIMChatRoomSDK.getChatRoomService()
|
NIMChatRoomSDK.getChatRoomService()
|
||||||
.updateQueueEx(roomId, String.valueOf(micPosition), contentJsonObj.toJSONString(), true)
|
.updateQueueEx(roomId, String.valueOf(micPosition), contentJsonObj.toJSONString(), true)
|
||||||
.setCallback(new RequestCallback<Void>() {
|
.setCallback(new RequestCallback<Void>() {
|
||||||
|
@@ -140,6 +140,8 @@ public interface IRoomBaseModel extends IModel {
|
|||||||
*/
|
*/
|
||||||
Single<String> updateMyMicQueue(int micPosition, String roomId, UserInfo userInfo);
|
Single<String> updateMyMicQueue(int micPosition, String roomId, UserInfo userInfo);
|
||||||
|
|
||||||
|
Single<String> updateMyMicQueue(int micPosition, String roomId, UserInfo userInfo, boolean isNoProhibitMic);
|
||||||
|
|
||||||
void downMicroPhone(int micPosition, final CallBack<String> callBack);
|
void downMicroPhone(int micPosition, final CallBack<String> callBack);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -10,6 +10,7 @@ import com.google.gson.Gson;
|
|||||||
import com.nnbc123.core.gift.bean.GiftType;
|
import com.nnbc123.core.gift.bean.GiftType;
|
||||||
import com.netease.nimlib.sdk.chatroom.ChatRoomMessageBuilder;
|
import com.netease.nimlib.sdk.chatroom.ChatRoomMessageBuilder;
|
||||||
import com.netease.nimlib.sdk.chatroom.model.ChatRoomMessage;
|
import com.netease.nimlib.sdk.chatroom.model.ChatRoomMessage;
|
||||||
|
import com.nnbc123.core.manager.AudioEngineManager;
|
||||||
import com.orhanobut.logger.Logger;
|
import com.orhanobut.logger.Logger;
|
||||||
import com.nnbc123.core.auth.AuthModel;
|
import com.nnbc123.core.auth.AuthModel;
|
||||||
import com.nnbc123.core.base.BaseModel;
|
import com.nnbc123.core.base.BaseModel;
|
||||||
@@ -716,8 +717,8 @@ public class PkModel extends BaseModel implements IPkModel {
|
|||||||
AvRoomModel.get().updateMyMicQueue(
|
AvRoomModel.get().updateMyMicQueue(
|
||||||
key,
|
key,
|
||||||
String.valueOf(AvRoomDataManager.get().mCurrentRoomInfo.getRoomId()),
|
String.valueOf(AvRoomDataManager.get().mCurrentRoomInfo.getRoomId()),
|
||||||
pkMemberInfo.getUserInfo()
|
pkMemberInfo.getUserInfo(),
|
||||||
)
|
!AudioEngineManager.get().isMute())
|
||||||
.subscribe();
|
.subscribe();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -869,9 +870,7 @@ public class PkModel extends BaseModel implements IPkModel {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Single<String> inviteInTeam(List<RoomPKInvitedUpMicMember> roomPKInvitedUpMicMember) {
|
public Single<String> inviteInTeam(List<RoomPKInvitedUpMicMember> roomPKInvitedUpMicMember) {
|
||||||
return Single.create(new SingleOnSubscribe<ChatRoomMessage>() {
|
return Single.create((SingleOnSubscribe<ChatRoomMessage>) e -> {
|
||||||
@Override
|
|
||||||
public void subscribe(SingleEmitter<ChatRoomMessage> e) throws Exception {
|
|
||||||
//发送给自定义消息
|
//发送给自定义消息
|
||||||
RoomPkAttachment roomPkAttachment = new RoomPkAttachment(CustomAttachment.CUSTOM_MESS_SUB_ROOM_PK_INVITE);
|
RoomPkAttachment roomPkAttachment = new RoomPkAttachment(CustomAttachment.CUSTOM_MESS_SUB_ROOM_PK_INVITE);
|
||||||
Map<String, RoomPKInvitedUpMicMember> micMemberMap = new HashMap<>();
|
Map<String, RoomPKInvitedUpMicMember> micMemberMap = new HashMap<>();
|
||||||
@@ -887,17 +886,9 @@ public class PkModel extends BaseModel implements IPkModel {
|
|||||||
);
|
);
|
||||||
|
|
||||||
e.onSuccess(inviteToTeamMsg);
|
e.onSuccess(inviteToTeamMsg);
|
||||||
}
|
|
||||||
})
|
})
|
||||||
.flatMap(new Function<ChatRoomMessage, SingleSource<? extends ChatRoomMessage>>() {
|
.flatMap(msg -> IMNetEaseManager.get().sendChatRoomMessage(msg, false))
|
||||||
@Override
|
.flatMap((Function<ChatRoomMessage, SingleSource<String>>) chatRoomMessage -> {
|
||||||
public SingleSource<? extends ChatRoomMessage> apply(ChatRoomMessage msg) throws Exception {
|
|
||||||
return IMNetEaseManager.get().sendChatRoomMessage(msg, false);
|
|
||||||
}
|
|
||||||
})
|
|
||||||
.flatMap(new Function<ChatRoomMessage, SingleSource<String>>() {
|
|
||||||
@Override
|
|
||||||
public SingleSource<String> apply(ChatRoomMessage chatRoomMessage) throws Exception {
|
|
||||||
//添加公屏
|
//添加公屏
|
||||||
RoomPkAttachment roomPkAttachment = (RoomPkAttachment) chatRoomMessage.getAttachment();
|
RoomPkAttachment roomPkAttachment = (RoomPkAttachment) chatRoomMessage.getAttachment();
|
||||||
Map<String, RoomPKInvitedUpMicMember> inviteMap = roomPkAttachment.getRoomPKInvitedUpMicMemberMap();
|
Map<String, RoomPKInvitedUpMicMember> inviteMap = roomPkAttachment.getRoomPKInvitedUpMicMemberMap();
|
||||||
@@ -927,14 +918,13 @@ public class PkModel extends BaseModel implements IPkModel {
|
|||||||
AvRoomModel.get().updateMyMicQueue(
|
AvRoomModel.get().updateMyMicQueue(
|
||||||
self.getPosition(),
|
self.getPosition(),
|
||||||
String.valueOf(AvRoomDataManager.get().mCurrentRoomInfo.getRoomId()),
|
String.valueOf(AvRoomDataManager.get().mCurrentRoomInfo.getRoomId()),
|
||||||
UserModel.get().getCacheLoginUserInfo()
|
UserModel.get().getCacheLoginUserInfo(),
|
||||||
|
!AudioEngineManager.get().isMute()
|
||||||
)
|
)
|
||||||
.subscribe();
|
.subscribe();
|
||||||
}
|
}
|
||||||
return Single.just("邀请上麦成功");
|
return Single.just("邀请上麦成功");
|
||||||
}
|
});
|
||||||
})
|
|
||||||
;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@@ -49,6 +49,11 @@ public class MicMemberInfo {
|
|||||||
private int teamId = 0;
|
private int teamId = 0;
|
||||||
private boolean isSelected = false;
|
private boolean isSelected = false;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* pk模式更新麦位信息, 默认开麦
|
||||||
|
*/
|
||||||
|
private boolean isNoProhibitMic = false;
|
||||||
|
|
||||||
//<editor-fold defaultstate="collapsed" desc="delombok">
|
//<editor-fold defaultstate="collapsed" desc="delombok">
|
||||||
//非麦序队列字段 end
|
//非麦序队列字段 end
|
||||||
//</editor-fold>
|
//</editor-fold>
|
||||||
@@ -315,4 +320,9 @@ public class MicMemberInfo {
|
|||||||
this.isSelected = isSelected;
|
this.isSelected = isSelected;
|
||||||
}
|
}
|
||||||
//</editor-fold>
|
//</editor-fold>
|
||||||
|
|
||||||
|
|
||||||
|
public boolean isNoProhibitMic() {
|
||||||
|
return isNoProhibitMic;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user