我正在开发一个项目,我正在使用jsp页面将桌面屏幕投射到Android移动设备上。我正在开发统一的Android应用程序。我们正在统一显示jsp页面。它落后了很多。我想在演员中实现同步。
这是我们用于Android应用的 C#代码。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using System.Threading;
public class LoadSprite : MonoBehaviour {
public float sensitivityX = 15F;
public float sensitivityY = 15F;
string url = "http://" + ServerConstant.ipadd + ":" + ServerConstant.portno
+ "/VRGamming/pages/phone.jsp?methodId=screenshot";
void Start () {
//InvokeRepeating("UpdateInterval", 0f, 0.066f);
InvokeRepeating("UpdateInterval", 0f, 0.0762f);
Resources.UnloadUnusedAssets();
}
void UpdateInterval()
{
StartCoroutine(disp());
}
IEnumerator disp()
{
WWW www = new WWW(url);
while (!www.isDone)
yield return null;
GameObject image = GameObject.Find("RawImage");
image.GetComponent<RawImage>().texture = www.texture;
DestroyImmediate(www.texture);
www.Dispose();
image = null;
Resources.UnloadUnusedAssets();
}
}
答案 0 :(得分:0)
您的瓶颈很可能是图像压缩不足以实现“实时”同步屏幕投射。
发送1920 x 1080显示屏的直接原始屏幕截图,大约是mb或2作为原始bmp。
也许尝试类似: https://github.com/aleh/jpegator
作为图像的预处理器,然后通过网络发送它们。 也许另一种解决方案可能是使用SharpZipLib - 并自己将字节数据rar / zip压缩到尽可能小的尺寸,然后在客户端/接收器端解压缩数据。
不幸的是,您不太可能获得100%的同步投射。
您将从图像带宽(大小)中获得延迟 或者压缩和解压缩图像所需的处理时间的延迟(处理)。