相机的onResume重新初始化黑屏(OnResume Camera Reinit Black Sc

2019-09-21 00:44发布

我有个问题。 初始化相机预览并把另一个应用程序成为关注的焦点,然后回到我的应用程序后:预览显示了黑色。 如果我继续拍照,它需要的地方,我通常将相机指向的图片。

我是不是做错了什么对的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();
    }

谢谢您的帮助。 :)

Answer 1:

onResume()被调用为时尚早。 您没有表面支架准备在这个阶段。 你可以尝试引进onPostResume()在活动处理器,和/或处理SurfaceHolder.Callback.surfaceChanged()事件。



文章来源: OnResume Camera Reinit Black Screen