有时候一台主机可能配置了不止一个摄像头,研究一下如何切换摄像头
先用协程 等待用户允许访问 然后获取摄像头数量 通过webcamtexture 来显示摄像头的画面
WebCamTexture tex;
WebCamTexture[] texs;
WebCamDevice[] device;
int camdeviceindex=0;
IEnumerator OpenCamera(){
yield return Application.RequestUserAuthorization(UserAuthorization.WebCam);//等待用户允许访问
if(Application.HasUserAuthorization(UserAuthorization.WebCam)){
device = WebCamTexture.devices;//先获取设备
texs = new WebCamTexture[device.Length];
for (int i = 0; i < device.Length; i++)
{
texs[i] = new WebCamTexture(device[i].name);
texs[i].requestedHeight = 1080;
texs[i].requestedWidth = 1920;
}
tex = texs[0];
webcamraw.texture = tex;
//开始实施获取
texs[0].Play();
}
public void SwitchCamera(){//切换相机
//然后获取图像
//将获取的图像赋值
if(texs[camdeviceindex].isPlaying){
texs[camdeviceindex].Stop();
}
camdeviceindex++;
if (camdeviceindex==device.Length)
{
camdeviceindex=0;
}
tex = texs[camdeviceindex];
webcamraw.texture = tex;
//开始实施获取
texs[camdeviceindex].Play();
}