我知道这是可能的,因为我的 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)
清单已正确设置。
谢谢
保罗