From c615530b357a589c1ea2586b9eaa69409877e355 Mon Sep 17 00:00:00 2001 From: wushaocheng <15876365887@163.com> Date: Tue, 17 Jan 2023 14:52:36 +0800 Subject: [PATCH] =?UTF-8?q?[BugFix]=E5=A3=B0=E9=9F=B3=E7=AD=BE=E5=90=8D?= =?UTF-8?q?=E5=88=A4=E6=96=AD=E6=88=BF=E9=97=B4=E6=98=AF=E5=90=A6=E8=A6=81?= =?UTF-8?q?=E9=9D=99=E9=9F=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../erban/audio/SoundSignatureActivity.kt | 3 +- .../erban/audio/viewmodel/SoundViewModel.kt | 39 +++++++++++++++++++ .../erban/ui/user/UserInfoActivity.java | 38 +++++++++--------- .../main/res/layout/activity_user_info.xml | 15 ------- 4 files changed, 60 insertions(+), 35 deletions(-) diff --git a/app/src/main/java/com/yizhuan/erban/audio/SoundSignatureActivity.kt b/app/src/main/java/com/yizhuan/erban/audio/SoundSignatureActivity.kt index 7a359cf55..c6f128bfa 100644 --- a/app/src/main/java/com/yizhuan/erban/audio/SoundSignatureActivity.kt +++ b/app/src/main/java/com/yizhuan/erban/audio/SoundSignatureActivity.kt @@ -121,8 +121,7 @@ class SoundSignatureActivity : BaseViewBindingActivity() val showConfirmLiveData: MutableLiveData = _showConfirmLiveData @@ -84,6 +90,14 @@ class SoundViewModel : BaseViewModel() { val showRecordConfirmDialogLiveData: MutableLiveData = _showRecordConfirmDialogLiveData init { + if (AvRoomDataManager.get().mCurrentRoomInfo != null) { + val roomQueueInfo = AvRoomDataManager.get() + .getRoomQueueMemberInfoByAccount(AuthModel.get().currentUid.toString()) + if (roomQueueInfo?.mRoomMicInfo != null) { + isMute = AudioEngineManager.get().isMute + } + isRemoteMute = AudioEngineManager.get().isRemoteMute + } audioManager = AudioPlayAndRecordManager.getInstance() } @@ -182,6 +196,7 @@ class SoundViewModel : BaseViewModel() { fun showNormalState() { // 正在播放:停止播放 AudioPlayerHelper.get().endPlay() + openRoomSound() audioState = STATE_RECORD_NORMAL audioUrl = null audioDur = 0 @@ -225,6 +240,7 @@ class SoundViewModel : BaseViewModel() { } // 正在播放:停止播放 AudioPlayerHelper.get().onPause() + openRoomSound() if (audioState != STATE_RECORD_NORMAL) { _refreshPlayStatusLiveData.value = false // onPause() 停止播放并显示停止状态(播放按钮) } @@ -248,6 +264,7 @@ class SoundViewModel : BaseViewModel() { } if (AudioPlayerHelper.get().isPlaying) { AudioPlayerHelper.get().endPlay() + openRoomSound() _refreshPlayStatusLiveData.value = false // 返回页面时,此时正在播放声音,则停止播放并显示停止状态(播放按钮) } if (audioState == STATE_RECORD_SUCCESS) { // 已经录制未保存:未保存提示(确定则返回页面/取消则保留当前页面) @@ -264,12 +281,15 @@ class SoundViewModel : BaseViewModel() { if (audioState == STATE_RECORD_SUCCESS || audioState == STATE_RECORD_SAVE_SUCCESS || audioState == STATE_RECORD_AUDIT_SUCCESS) { if (AudioPlayerHelper.get().isPlaying) { AudioPlayerHelper.get().pausePlay() + openRoomSound() _refreshPlayStatusLiveData.value = false// 点击试听按钮此时正在播放声音,则暂停播放并显示停止状态(播放按钮) } else if (AudioPlayerHelper.get().isPause) { AudioPlayerHelper.get().continuePlay() + stopRoomSound() _refreshPlayStatusLiveData.value = true// 点击试听按钮此时正在暂停声音,则继续播放并显示播放状态(停止按钮) } else if (AudioPlayerHelper.get().isPreparing) { AudioPlayerHelper.get().endPlay() + openRoomSound() _refreshPlayStatusLiveData.value = false// 点击试听按钮此时正在准备状态,则停止播放并显示停止状态(播放按钮) } else { if (null != audioFile && audioFile?.exists() == true) { @@ -293,6 +313,7 @@ class SoundViewModel : BaseViewModel() { } override fun onPrepared() { + stopRoomSound() _refreshPlayStatusLiveData.value = true// 准备完毕要开始播放:播放状态(暂停按钮) } @@ -305,6 +326,7 @@ class SoundViewModel : BaseViewModel() { } override fun onCompletion() { + openRoomSound() _refreshPlayStatusLiveData.value = false// 播放完成:停止状态(播放按钮) _resetStatusLiveData.value = null } @@ -312,6 +334,23 @@ class SoundViewModel : BaseViewModel() { _refreshPlayStatusLiveData.value = true// 点击试听按钮此时并没有正在播放声音,则播放声音并显示正在播放状态(暂停按钮) } + private fun stopRoomSound() { + if (AvRoomDataManager.get().mCurrentRoomInfo != null) { + AudioEngineManager.get().isRemoteMute = true //設置靜音 + AudioEngineManager.get().isMute = true //不能説話 + AudioEngineManager.get().setRole(Constants.CLIENT_ROLE_AUDIENCE) + } + } + + private fun openRoomSound() { + if (AvRoomDataManager.get().mCurrentRoomInfo != null) { + AudioEngineManager.get().isRemoteMute = isRemoteMute //非靜音 + AudioEngineManager.get().isMute = isMute //能説話 + AudioEngineManager.get() + .setRole(if (isMute) Constants.CLIENT_ROLE_AUDIENCE else Constants.CLIENT_ROLE_BROADCASTER) + } + } + fun saveRecord(audioUrl: String, second: Int = audioDur) { this.audioUrl = audioUrl safeLaunch( diff --git a/app/src/main/java/com/yizhuan/erban/ui/user/UserInfoActivity.java b/app/src/main/java/com/yizhuan/erban/ui/user/UserInfoActivity.java index 3e47a61f4..f63103b51 100644 --- a/app/src/main/java/com/yizhuan/erban/ui/user/UserInfoActivity.java +++ b/app/src/main/java/com/yizhuan/erban/ui/user/UserInfoActivity.java @@ -1,5 +1,7 @@ package com.yizhuan.erban.ui.user; +import static com.yizhuan.erban.ui.user.UserInfoActivity.IdentityState.OWN; + import android.annotation.SuppressLint; import android.content.ClipData; import android.content.ClipboardManager; @@ -64,6 +66,7 @@ import com.yizhuan.erban.vip.VipHelper; import com.yizhuan.xchat_android_constants.XChatConstants; import com.yizhuan.xchat_android_core.Constants; import com.yizhuan.xchat_android_core.auth.AuthModel; +import com.yizhuan.xchat_android_core.bean.RoomQueueInfo; import com.yizhuan.xchat_android_core.im.friend.IMFriendModel; import com.yizhuan.xchat_android_core.level.UserLevelVo; import com.yizhuan.xchat_android_core.manager.AudioEngineManager; @@ -71,7 +74,6 @@ import com.yizhuan.xchat_android_core.manager.AvRoomDataManager; import com.yizhuan.xchat_android_core.praise.PraiseModel; import com.yizhuan.xchat_android_core.praise.event.IsLikedEvent; import com.yizhuan.xchat_android_core.praise.event.PraiseEvent; -import com.yizhuan.xchat_android_core.room.bean.RoomInfo; import com.yizhuan.xchat_android_core.statistic.StatisticManager; import com.yizhuan.xchat_android_core.statistic.protocol.StatisticsProtocol; import com.yizhuan.xchat_android_core.user.UserInfoUiMgr; @@ -97,10 +99,6 @@ import java.util.ArrayList; import java.util.Date; import java.util.List; -import lombok.val; - -import static com.yizhuan.erban.ui.user.UserInfoActivity.IdentityState.OWN; - /** * create by lvzebiao on 2018/8/31 */ @@ -129,6 +127,9 @@ public class UserInfoActivity extends BaseBindingActivity - -