Media plugin for Xamarin은 장치의 기본 제공 카메라 기능에 액세스하는 좋은 예입니다.
귀하의 요구 사항이 약간 다른 것 같습니다. 카메라 페이지의 UI를보다 세부적으로 제어해야합니다. 대신 자신 만의 맞춤 카메라 페이지를 만드는 것이 좋습니다. 이 좋은 예가 here입니다. UI 컨트롤을 만드는 카메라 미리보기 페이지를 구현합니다. 이것은 사용자 정의 렌더러를 사용합니다.
// The control used in shared code
public class CameraPreview : View
{
public static readonly BindableProperty CameraProperty = BindableProperty.Create (
propertyName: "Camera",
returnType: typeof(CameraOptions),
declaringType: typeof(CameraPreview),
defaultValue: CameraOptions.Rear);
public CameraOptions Camera {
get { return (CameraOptions)GetValue (CameraProperty); }
set { SetValue (CameraProperty, value); }
}
}
// Renderer for iOS, platform specific project
[assembly: ExportRenderer (typeof(CameraPreview),
typeof(CameraPreviewRenderer))]
namespace CustomRenderer.iOS
{
public class CameraPreviewRenderer : ViewRenderer<CameraPreview, UICameraPreview>
{
UICameraPreview uiCameraPreview;
protected override void OnElementChanged (ElementChangedEventArgs<CameraPreview> e)
{
base.OnElementChanged (e);
if (Control == null) {
uiCameraPreview = new UICameraPreview (e.NewElement.Camera);
SetNativeControl (uiCameraPreview);
}
if (e.OldElement != null) {
// Unsubscribe
uiCameraPreview.Tapped -= OnCameraPreviewTapped;
}
if (e.NewElement != null) {
// Subscribe
uiCameraPreview.Tapped += OnCameraPreviewTapped;
}
}
void OnCameraPreviewTapped (object sender, EventArgs e)
{
if (uiCameraPreview.IsPreviewing) {
uiCameraPreview.CaptureSession.StopRunning();
uiCameraPreview.IsPreviewing = false;
} else {
uiCameraPreview.CaptureSession.StartRunning();
uiCameraPreview.IsPreviewing = true;
}
}
...
}
}
은 다른 플랫폼에 대한 위의 링크를 살펴 보자. 사용자 정의 카메라 페이지를 만들고
Moments sample에 이미지를 캡처하는 또 다른 샘플이 있습니다. 각 렌더러에서 이미지 캡처를 처리하는 데 사용되는 버튼을 볼 수 있습니다. 이렇게하면 사용자가 수행 할 수있는 작업과 수행 할 수없는 작업을보다 효과적으로 제어 할 수 있습니다.
카메라에서 제한해야하는 항목에 대한 구체적인 정보를 포함하면이 내용을 더 자세히 편집 할 수 있습니다.
발견 한 솔루션을 어떻게 시도 했습니까? 프로젝트의 오류 메시지와 일부 키 코드를 표시 할 수 있습니까? –