0

我知道这是可能的,因为我的 droid 手机附带的相机应用程序可以做到这一点,但就我的一生而言,我似乎无法动态切换摄像头来拍摄视频或标准摄像头(这让我怀疑我做的不对!)

目前,我有一个按钮事件

btnSwitchCamera.Click += new EventHandler(btnSwitchCamera_Click);

在此之前,我检查了摄像头的数量 - 如果只有一个摄像头,则未启用该事件。

开关代码如下所示

private void btnSwitchCamera_Click(object s, EventArgs e)
    {
        if (isBackCamera == false)
        {
            try
            {
                RunOnUiThread(delegate
                {
                    camera.Release();
                    camera = Android.Hardware.Camera.Open(1);
                });
            }
            catch (Java.Lang.RuntimeException)
            {
                alertMsg(context, Application.Context.Resources.GetString(Resource.String.videoErrorTitle),
                    Application.Context.Resources.GetString(Resource.String.videoFailToConnect));
                return;
            }
            isBackCamera = true;
        }
        else
        {
            try
            {
                RunOnUiThread(delegate
                {
                    camera.Release();
                    camera = Android.Hardware.Camera.Open(0);
                });
            }
            catch (Java.Lang.RuntimeException)
            {
                alertMsg(context, Application.Context.Resources.GetString(Resource.String.videoErrorTitle),
                    Application.Context.Resources.GetString(Resource.String.videoFailToConnect));
                return;
            }
            isBackCamera = false;
        }
    }

如果我单击该按钮,应用程序就会死机,声称我无法连接到该服务。

视频记录代码没什么特别的——它是一个设置表面、做支架和开始/停止记录的沼泽标准。

我这样做对吗?从文档中,我需要释放相机,然后使用适当的相机编号打开相机(Android.Hardware.Camera.NumberOfCameras - 1)

清单已正确设置。

谢谢

保罗

4

0 回答 0