Meeting SDK Type and Version
Any version prior to 6.0.10.22015
Description
There is a grid mode and a speaker mode in the app (2 different fragments). Grid fragments contains one MobileRtcVideoView on the screen. There are 20 users in this videoView.
In most cases works well and user can observe all participants in videoView. Sometimes some participant’s video is not shown (black frames), although their cameras are ON. The Sdk reports that this user is streaming video, while there is no actual video in the grid:
val info = ZoomSDK.getInstance().inMeetingService.getUserInfoById(userId)
Log.d(TAG, "${info.videoStatus.isSending}") //true
Recreating the problematic AttendeeVideoUnit in the grid does not help.
In the speaker view (MobileRtcVideoView with only one user) the problematic user’s video is streamed well.
Eg: user with id 12345 is speaking. In speaker view his video is shown. Switching to gallery view - most users videos are shown, some users (including speaker 12345) have a black frame. Switching between views/recreating video units not help. After app restart the user with id 12345 is shown well in both gallery and speaker views.
Each item is added to the grid’s videoView next way:
val manager = videoView.videoViewManager
val renderInfo = MobileRTCVideoUnitRenderInfo(xPercent, yPercent, widthPercent, heightPercent)
renderInfo.aspect_mode = MobileRTCVideoUnitAspectMode.VIDEO_ASPECT_PAN_AND_SCAN
renderInfo.backgroud_color = ContextCompat.getColor(context, R.color.video_stream_bg)
manager.addAttendeeVideoUnit(userId, renderInfo)
invalidate()
requestLayout()
Item is added to a speaker view next way:
manager!!.removeAllVideoUnits()
val renderInfo = MobileRTCVideoUnitRenderInfo(0, 0, 100, 100)
renderInfo.aspect_mode = MobileRTCVideoUnitAspectMode.VIDEO_ASPECT_ORIGINAL
manager!!.addAttendeeVideoUnit(userId, renderInfo)
invalidate()
Thanks for any help.