Windows phone 8 以编程方式缩放音频视频捕获设备?

Windows phone 8 以编程方式缩放音频视频捕获设备?,windows-phone-8,Windows Phone 8,有人知道如何在WindowsPhone8中以编程方式缩放AudioVideoCaptureDevice吗 我正在使用AudioVideoCaptureDevice(是的,我想要那个特定的设备,这样我就可以控制VideoTorchMode属性)。但我一辈子都搞不懂变焦。我正在使用映射到AudioVideoCaptureDevice的视频画笔绘制画布。我想实施捏变焦,甚至一个简单的+/-按钮来缩放相机 我遗漏了什么?我不熟悉WP8中的任何API,这些API允许您通过编程方式设置PhotoCaptur

有人知道如何在WindowsPhone8中以编程方式缩放AudioVideoCaptureDevice吗

我正在使用AudioVideoCaptureDevice(是的,我想要那个特定的设备,这样我就可以控制VideoTorchMode属性)。但我一辈子都搞不懂变焦。我正在使用映射到AudioVideoCaptureDevice的视频画笔绘制画布。我想实施捏变焦,甚至一个简单的+/-按钮来缩放相机


我遗漏了什么?

我不熟悉WP8中的任何API,这些API允许您通过编程方式设置PhotoCaptureDevice/AudioVideoCaptureDevice上的变焦。我的理论是,您可以通过实现自己的“收缩到缩放”功能并确保该区域是集中的来手动完成

有关如何使用WP8摄像头API聚焦某个地区的信息,请参阅诺基亚的。你要寻找的核心内容可以在“点击聚焦”下找到

private async void videoCanvas\u点击(对象发送方,GestureEventArgs e)
{
System.Windows.Point=e.GetPosition(可视画布);
if(_focusemaphore.WaitOne(0))
{
/以抽头坐标为基础点
Boint .Point TopPoint=新Windows .Frime.Point(UITActh.x,UITActh.y);
double xRatio=VideoCanvas.ActualWidth/_dataContext.Device.PreviewResolution.Width;
double yRatio=VideoCanvas.ActualHeight/_dataContext.Device.PreviewResolution.Height;
//调整以使焦点集中在抽头点上
Boosial.Point DePosieOrth=新的Windows .Futo.Point(
tapPoint.X-_focusRegionSize.Width/2,
t点Y-_焦点区域尺寸高度/2);
//调整预览图像和画布之间的分辨率差异
Field.Point .VIEW VIEWFINDER Orth=新的Windows .Field.Point(DistPoal.Orth.x/XRead,DeSpaseOrth.y/yRead);
Fieltual.RecFixReCtt =新Windows .Frase.ReCt(VIEWFINDER Orthor,FixSuffSimeStand);
//剪辑以预览分辨率
Field.ReutsVIEWTrReCtt=新的Windows .Fase.ReCt(0, 0,yDATACONTRONT.DEVIC.PREVIEWPROCEDIFES.WRITE,SO DATACONTRONT.Enguly.PyVIEW分辨率.Health.);
focusrect.Intersect(viewPortRect);
_dataContext.Device.FocusRegion=focusrect;
//显示焦点指示器
FocusIndicator.SetValue(Shape.StrokeProperty,_notFocusedBrush);
FocusIndicator.SetValue(Canvas.LeftProperty,uitacil.X-_focusRegionSize.Width/2);
FocusIndicator.SetValue(Canvas.TopProperty,uitacill.Y-_focusRegionSize.Height/2);
FocusIndicator.SetValue(Canvas.VisibilityProperty,Visibility.Visible);
CameraFocusStatus status status=wait_dataContext.Device.FocusAsync();
如果(状态==CameraFocusStatus.Locked)
{
FocusIndicator.SetValue(Shape.StrokeProperty,_focusedBrush);
_手动聚焦=正确;
_dataContext.Device.SetProperty(KnownCameraPhotoProperties.LockedAutoFocusParameters,
自动对焦参数。曝光和自动对焦参数。对焦和自动对焦参数。白平衡);
}
其他的
{
_手动聚焦=错误;
_dataContext.Device.SetProperty(KnownCameraPhotoProperties.LockedAutoFocusParameters,AutoFocusParameters.None);
}
_focusSemaphore.Release();
}
}
以下是如何在WP8@

在您的示例中,我要添加的一件事是父控件上的规范,以确保您不会意外渲染比屏幕大数十倍或数百倍的图像,并降低应用程序的性能