OnResume相机重新启动黑屏

Ecn*_*lis 7 android onresume xamarin.android onpause xamarin

我有个问题.初始化相机进行预览并将另一个应用程序聚焦后,然后返回我的应用程序:预览显示为黑色.如果我继续拍照,则会拍摄我正常指向相机的位置.

我在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();
    }
Run Code Online (Sandbox Code Playgroud)

谢谢您的帮助.:)

Ale*_*ohn 7

onResume()过早被召唤.在此阶段,您没有准备好表面支架.您可以尝试onPostResume()在Activity中引入处理程序,和/或处理SurfaceHolder.Callback.surfaceChanged()事件.