我试图通过屏幕共享从Unity构建的应用程序显示到网站上。
但是,我注意到agora使用
externalVideoFrame.format = ExternalVideoFrame.VIDEO_PIXEL_FORMAT.VIDEO_PIXEL_BGRA;
统一地,Texture2D.ReadPixels
仅支持RGB。
因此,当我这样做时,接收端将交换红色和蓝色。
有没有办法在Unity中获得BGR?或Agora具有RGB支持? 我在发送agora之前尝试过将byte []反转,但是性能非常糟糕。.最好为1 fps。
答案 0 :(得分:1)
统一使用Texture2D.ReadPixels仅支持RGB。
实际上,那不是事实。 ReadPixels读取由Texture2D对象实例化设置的格式。在the Unity scripting example中,您会看到“ TextureFormat.RGB24”。取而代之的是,您应该使用TextureFormat.BGRA32,它将与Agora API的要求匹配。