diff --git a/app/src/main/java/com/nnbc123/app/avroom/fragment/BaseRoomFragment.kt b/app/src/main/java/com/nnbc123/app/avroom/fragment/BaseRoomFragment.kt index 96263d0b1..52fb99767 100644 --- a/app/src/main/java/com/nnbc123/app/avroom/fragment/BaseRoomFragment.kt +++ b/app/src/main/java/com/nnbc123/app/avroom/fragment/BaseRoomFragment.kt @@ -679,7 +679,11 @@ open class BaseRoomFragment?> : .getRoomQueueMemberInfoByAccount(myUid.toString()) if (roomQueueInfo?.mChatRoomMember?.isNoProhibitMic == true && roomQueueInfo.mRoomMicInfo?.isMicMute == false) { bottomView.setMicBtnEnable(true) - bottomView.setMicBtnOpen(true) + if (AudioEngineManager.get().isMute) { + bottomView.setMicBtnOpen(false) + } else { + bottomView.setMicBtnOpen(true) + } } else if (roomQueueInfo?.mChatRoomMember != null && myUid.toString() == roomQueueInfo.mChatRoomMember.account && roomQueueInfo.mRoomMicInfo?.isMicMute == true @@ -1000,7 +1004,15 @@ open class BaseRoomFragment?> : (roomInfo.isLeaveMode || AvRoomDataManager.get().isSingleRoom) && position == -1 ) { - showUserCardDialog(roomInfo.uid.toString()) + val currentUid = AuthModel.get().currentUid.toString() + if (roomInfo.isLeaveMode && !AvRoomDataManager.get().isSingleRoom && (AvRoomDataManager.get() + .isRoomOwner(currentUid) || AvRoomDataManager.get().isRoomAdmin(currentUid) + || SuperAdminUtil.isSuperAdmin()) + ) { + SingleToastUtil.showToast("请先关闭离开模式") + } else { + showUserCardDialog(roomInfo.uid.toString()) + } } else { val roomQueueInfo = AvRoomDataManager.get() .getRoomQueueMemberInfoByMicPosition(position) diff --git a/core/src/diff_src_erban/java/com/nnbc123/core/manager/agora/EngineEventHandler.java b/core/src/diff_src_erban/java/com/nnbc123/core/manager/agora/EngineEventHandler.java index 93500ac73..17c6c969f 100644 --- a/core/src/diff_src_erban/java/com/nnbc123/core/manager/agora/EngineEventHandler.java +++ b/core/src/diff_src_erban/java/com/nnbc123/core/manager/agora/EngineEventHandler.java @@ -11,6 +11,9 @@ import com.nnbc123.library.utils.SingleToastUtil; import io.agora.rtc2.ClientRoleOptions; import io.agora.rtc2.Constants; import io.agora.rtc2.IRtcEngineEventHandler; +import io.reactivex.Observable; +import io.reactivex.ObservableOnSubscribe; +import io.reactivex.android.schedulers.AndroidSchedulers; /** * @author by 梁馨 on 2020/9/14. @@ -129,7 +132,10 @@ public class EngineEventHandler extends IRtcEngineEventHandler { super.onClientRoleChanged(oldRole, newRole, newRoleOptions); //角色切换 麦克风切换 if (newRole == Constants.CLIENT_ROLE_BROADCASTER) { - RtcEngineManager.get().setMute(RtcEngineManager.get().isMute); + Observable.create((ObservableOnSubscribe) emitter -> { + RtcEngineManager.get().setMute(RtcEngineManager.get().isMute); + emitter.onComplete(); + }).subscribeOn(AndroidSchedulers.mainThread()).subscribe(); } }