1
私は懐中電灯をオンにするアプリケーションを書いています。私の唯一の問題は、私のアプリを開くたびに、私の電話カメラのオプションが機能しなくなる - それは私のカメラをもう開くことができないということです。カメラは、私が自分のアプリケーションを殺す場合にのみ動作します。ここに私のコードです:Xamarin - カメラのクラスやオブジェクトが私の電話カメラの動作を妨げます
public static Camera camera = null;
私は私のOFFボタンで私のONボタンでTurnCameraOn()とTurnCameraOffを呼び出します。
private void TurnCameraOn()
{
if (CameraAvailable() == true)
{
if (camera == null)
camera = Camera.Open();
Camera.Parameters parameters = camera.GetParameters();
parameters.FlashMode = Camera.Parameters.FlashModeTorch;
camera.SetParameters(parameters);
Android.Graphics.SurfaceTexture mPreviewTexture = new Android.Graphics.SurfaceTexture(0);
camera.SetPreviewTexture(mPreviewTexture);
camera.StartPreview();
cameraFlashLightOnThread = true;
}
}
private void TurnCameraOff()
{
if (CameraAvailable() == true)
{
if (camera == null)
camera = Camera.Open();
Camera.Parameters parameters = camera.GetParameters();
parameters.FlashMode = Camera.Parameters.FlashModeOff;
camera.SetParameters(parameters);
camera.StopPreview();
cameraFlashLightOnThread = false;
}
}
private bool CameraAvailable()
{
bool availale = true;
if (PackageManager.HasSystemFeature(Android.Content.PM.PackageManager.FeatureCamera) == false)
{
availale = false;
Toast.MakeText(this, "No back-facing camera available", ToastLength.Long);
}
if (PackageManager.HasSystemFeature(Android.Content.PM.PackageManager.FeatureCameraFlash) == false)
{
availale = false;
Toast.MakeText(this, "No camera flash available", ToastLength.Long);
}
return availale;
}
ありがとうございます。それは完璧に正常に動作します。しかし、私はカメラオブジェクトを処分すると、このコードを使って再びインスタンス化できないので、.Dispose()を.release()()に置き換えました。 Camera.Open(); 。カメラにアクセスできないというエラーメッセージが表示されます。 –