BindUserVideoFrames (Unity)
- Declaration
public static IDisposable BindUserVideoFrames(this CavrnusUser user, Action<TextureWithUVs> userFrameArrived)
- Description
Triggers an event for every new frame of a user’s video stream. Note that this frame will sometimes be null if there is no stream.
The provided type is TextureWithUVs
. This is important because different stream sources sometimes provide odd UVRects. For performance reasons we don’t attempt to flip/correct the Textures, instead we provide you with the UVs to flip the top-level UI when necessary. See the sample below for more details.
- Sample
public class UsersPanelEntry : MonoBehaviour
{
[SerializeField] private RawImage videoStreamImage;
[SerializeField] private AspectRatioFitter aspectRatioFitter;
public void Setup(CavrnusUser user) => user.BindUserVideoFrames(AssignVidTexture);
private void AssignVidTexture(TextureWithUVs tex)
{
float aspectRatio = 1.5f; // default value
if (tex.Texture.width > 0 && tex.Texture.height > 0)
aspectRatio = (float) tex.Texture.width / tex.Texture.height;
aspectRatioFitter.aspectRatio = aspectRatio;
videoStreamImage.texture = tex.Texture;
videoStreamImage.uvRect = tex.UVRect;
}
}