Bladeren bron

fix: 修复首次获取权限后声网, 火山RTC麦克风无声问题

wzq 9 maanden geleden
bovenliggende
commit
eef8ee4d3a

+ 6 - 0
module/room/src/main/java/com/adealink/weparty/room/RoomActivity.kt

@@ -310,6 +310,12 @@ class RoomActivity : BaseActivity(), IRoomOpListener {
 
                 if (!granted) {
                     roomService.deviceController.userMuteMic(true, MicMuteReason.RECORD_PERMISSION_DENIED)
+                } else {
+                    if (roomService.mediaService.isChannelJoined()) {
+                        // 声网或者火山RTC, 必须先获取到权限后才能开始采集本地音频, 不然会没有声音. 所以这里toggle下
+                        roomService.deviceController.enableLocalAudio(false)
+                        roomService.deviceController.enableLocalAudio(true)
+                    }
                 }
 
                 onFinished.invoke()

+ 6 - 0
module/room/src/main/java/com/adealink/weparty/room/operate/RoomBottomOperateFragment.kt

@@ -522,6 +522,12 @@ open class RoomBottomOperateFragment : BaseFragment(R.layout.fragment_room_botto
                     return@requestRecordAudioPermission
                 }
 
+                if (roomService.mediaService.isChannelJoined()) {
+                    // 声网或者火山RTC, 必须先获取到权限后才能开始采集本地音频, 不然会没有声音. 所以这里toggle下
+                    roomService.deviceController.enableLocalAudio(false)
+                    roomService.deviceController.enableLocalAudio(true)
+                }
+
                 switchMic()
             }
             return