Skip to content

Instantly share code, notes, and snippets.

@pacoelayudante
Last active December 27, 2016 21:58
Show Gist options
  • Save pacoelayudante/7baeee5a62cee79c4dce53799f931531 to your computer and use it in GitHub Desktop.
Save pacoelayudante/7baeee5a62cee79c4dce53799f931531 to your computer and use it in GitHub Desktop.
Activa o Desactiva la Torch con lag porque no es codigo nativo
using UnityEngine;
// AndroidCamTorch.Activar()
// AndroidCamTorch.Desactivar()
public class AndroidCamTorch
{
#if UNITY_ANDROID
static AndroidJavaClass cameraClassInternal;
static AndroidJavaObject cameraInstanceInternal, cameraParametersInternal;
static AndroidJavaClass cameraClass
{
get
{
if (cameraClassInternal == null)
{
WebCamDevice[] devices = WebCamTexture.devices;
cameraClassInternal = new AndroidJavaClass("android.hardware.Camera");
}
if (cameraClassInternal == null)
{
Debug.LogError("No se encuentra la Cam API de Android");
return null;
}
else return cameraClassInternal;
}
}
static AndroidJavaObject cameraInstance
{
get
{
if (cameraInstanceInternal == null)
{
cameraInstanceInternal = cameraClass.CallStatic<AndroidJavaObject>("open", 0);
}
if (cameraInstanceInternal == null)
{
Debug.LogError("No se pudo abrir camara");
return null;
}
else return cameraInstanceInternal;
}
}
static AndroidJavaObject cameraParameters
{
get
{
if (cameraParametersInternal == null)
{
cameraParametersInternal = cameraInstance.Call<AndroidJavaObject>("getParameters");
}
if (cameraParametersInternal == null)
{
Debug.LogError("No se pudieron getear los parametros");
return null;
}
else return cameraParametersInternal;
}
}
#endif
public static void Activar()
{
#if UNITY_ANDROID && !UNITY_EDITOR
cameraParameters.Call("setFlashMode", "torch");
cameraInstance.Call("setParameters", cameraParameters);
cameraInstance.Call("startPreview");
#endif
}
public static void Desactivar()
{
#if UNITY_ANDROID && !UNITY_EDITOR
cameraParameters.Call("setFlashMode", "off");
cameraInstance.Call("setParameters", cameraParameters);
cameraInstance.Call("stopPreview");
#endif
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment