在摄像头恢复时重新初始化遇到黑屏问题

7

我有一个问题。在初始化相机进行预览并将另一个应用程序置于焦点后,再回到我的应用程序时:预览会显示黑色。如果我继续拍照,它会拍摄我通常指向相机的位置。

我在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个回答

7

1
谢谢,使用SurfaceHolder回调完美运行。 :) - Ecnelis

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接