ActiveVideoUnit remains black (empty) the second time

MobileRTCVideoView videoView


void showActiveUser() {
        MobileRTCVideoViewManager activeVideoViewManager = videoView.getVideoViewManager();
        if (activeVideoViewManager != null) {
            activeVideoViewManager.removeAllVideoUnits();
           MobileRTCVideoUnitRenderInfo renderInfo = new MobileRTCVideoUnitRenderInfo(0, 0, 100, 100);
            renderInfo.is_username_visible = true;
            renderInfo.is_show_audio_off = false;
            renderInfo.is_border_visible = false;
            boolean result = activeVideoViewManager.addActiveVideoUnit(renderInfo);
        }
}

void showSpecificUser(long userId) {
        MobileRTCVideoViewManager activeVideoViewManager = videoView.getVideoViewManager();
        if (activeVideoViewManager != null) {
            activeVideoViewManager.removeAllVideoUnits();
            MobileRTCVideoUnitRenderInfo renderInfo = new MobileRTCVideoUnitRenderInfo(0, 0, 100, 100);
            renderInfo.is_username_visible = true;
            renderInfo.is_show_audio_off = false;
            renderInfo.is_border_visible = false;
            booelan result = activeVideoViewManager.addAttendeeVideoUnit(userId, renderInfo);
        }
}

I am creating a custom UI using the Meeting SDK. The app has a single videoView and at startup the activeVideoUnit is displayed and the visibility of the video stream is related to the audio trigger.
The user that has speaking is currently visible.

The users can also choose which meeting partcipant are interested to see using showSpecificUser function.
The issue happens when they come back to the ActiveVideoUnit using the showActiveUser function.

The video remains black (empty), the user name is properly visible, and the audio of the active user is audible.

NOTE: the result value of addAttendeeVideoUnit or addActiveVideoUnit is always “true”

Android Meeting SDK version 5.12.8.9901

@criva,

Thank you for posting in the Zoom Developer, and sorry for the missed response. To better understand your pain points and what you want to accomplish, please share a screenshot of the custom UI using the Meeting SDK at startup and one when the user returns to the ActiveVideoUnit using the showActiveUser function. This context will help us diagnose what may be happening.

I prepared a video. I hope that it makes more clear what is happening.

on the left side you can see the iOS implementation with the expected pin/unpin behavior
on the right side you can see the Android implementation with the active video unit that remains black after the unpin

The interesting thing is that when I turn off the camera on the iOS side the placeholder icon added by the Zoom SDK is properly visible, so I guess that the user is properly assigned to the video unit but the video streaming is not visualized.

I’ve just try using meeting SDK v5.13.5.11583 and the issue is still present

Any news about it?
Is the video provided useful?

Hi @criva ,

We’re not able to reproduce the issue from our side. Would you please provide the Zoom SDK log file to us for further investigation?
Thank you!

Elaine

This is the log file while the app is showing the issue

https://thinkerly-my.sharepoint.com/:u:/p/criva/EerEzjSnEI5JmyqAQKtGbyEBfHM64sL37o-OC-5QJXDjhQ?e=lmeItU

Let me know if you need more info

Hi @criva ,

Have you also added the function removeAllVideoUnits when you unpin a user? It seems you’ve added it when pinning a user, wondering had you also add it when unpinning the user.
Thank you

Elaine

When I unpin the user the showActiveUser function gets called and it calls the removeAllVideoUnits

void showActiveUser() {
        MobileRTCVideoViewManager activeVideoViewManager = videoView.getVideoViewManager();
        if (activeVideoViewManager != null) {
            activeVideoViewManager.removeAllVideoUnits();
           MobileRTCVideoUnitRenderInfo renderInfo = new MobileRTCVideoUnitRenderInfo(0, 0, 100, 100);
            renderInfo.is_username_visible = true;
            renderInfo.is_show_audio_off = false;
            renderInfo.is_border_visible = false;
            boolean result = activeVideoViewManager.addActiveVideoUnit(renderInfo);
        }
}

Hi @criva ,

I would like to clarify this with you. In your video, there are three steps to show different views.

  1. Show gallery view → function showActiveUser
  2. Double-click on a specific user → showSpecificUser
  3. Double-click on the user that shows on the screen → What should be the function that triggers here? Is it also showSpecificUser?
    Thank you

Elaine

The sequence is the following:

At meeting startup display active user
1st page of a ViewPager2

showActiveUser (show who is speaking)

move in grid view for selecting the user that has to be pinned (2nd page of a ViewPager2)

double tap on it for pinning the user
(switching back to the 1st page of the ViewPager2 )
showSpecificUser (show the pinned user)

Double tap on the pinned user for going back to the active user
showActiveUser (come back to show who is speaking)

The active user seems to be properly visualized (no errors) but the video area remains black.

So the sequence is:
showActiveUser
showSpecificUser
showActiveUser

Hi @criva ,

When you switch from the gallery view back to the active user, you’ll need to use removeAllVideoUnits for each videoView that is present in the gallery view to make sure you’ve clean up all the videos.
Please let me know is this issue still exists after adding the function.
Thank you

Elaine

I am pretty confused.
Are you say that I cannot see the active video user and a gallery with all users at the same time?

Hi @criva ,

I would like to know how did you implement the gallery view. Each user video in the gallery view is a MobileRTcVideoView. We’ll need to call removeAllVideoUnits for each MobileRTcVideoView when we switch from the gallery view to the active user or specific user view.

Elaine

I’ve modified my app adding removeAllVideoUnits to all other MobileRTcVideoView before pinning the user and it seems to fix the issue.

I’ll do some extra tests and I’ll let you know.

Thank you

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.