OnResume Камера Reinit Черный Экран
У меня проблема. После инициализации камеры для предварительного просмотра и фокусировки другого приложения, а затем обратно в мое приложение: предварительный просмотр отображается черным. Если я продолжаю снимать, он делает снимок того, куда я обычно направляю камеру.
Я делаю что-то неправильно в переопределении OnResume ()? Относительный код ниже:
public void ReleaseCamera()
{
if (myCamera != null)
{
myCamera.Release();
myCamera = null;
}
}
protected override void OnPause()
{
base.OnPause();
if (myButtonState == ButtonState.CameraActive)
ReleaseCamera();
}
protected override void OnResume()
{
base.OnResume();
if (myButtonState == ButtonState.CameraActive)
InitializeCamera();
}
private void InitializeCamera()
{
SurfaceView mySurfaceView = FindViewById<SurfaceView>(Resource.Id.surfaceView1);
myCamera = Android.Hardware.Camera.Open(cameraNumber);
Android.Hardware.Camera.Parameters p = myCamera.GetParameters();
myCamera.SetDisplayOrientation(90); // Portrait
myCamera.SetPreviewDisplay(mySurfaceView.Holder);
myCamera.StartPreview();
}
Спасибо за помощь. :)
1 ответов
onResume()
вызывается слишком рано. На данном этапе держатель поверхности не готов. Вы можете попробовать ввести onPostResume()
обработчик в вашей деятельности, и/или обработки SurfaceHolder.Callback.surfaceChanged()
событие.