簡體   English   中英

如何使用媒體插件在 Xamarin.Forms 中實現相機疊加的依賴服務?

[英]How to Implement Dependency Service for Camera Overlay in Xamarin.Forms Using the Media Plugin?

我正在嘗試使用 Xamarin 的媒體插件https://github.com/jamesmontemagno/MediaPlugin將相機疊加功能作為依賴服務傳遞到我的共享代碼中。

我無法弄清楚如何正確實現依賴服務。 該應用程序運行,但當我打開相機時,它不顯示疊加層。 如果有人可以幫助我編寫代碼,或指導我使用覆蓋選項的示例,我將不勝感激。

我的界面代碼:

public interface IPhotoOverlay 
{
   object GetImageOverlayAsync();
}

我的iOS代碼:

public object GetImageOverlayAsync()
    {
        Func<object> func = CreateOverlay;

        return func;
    }

    public object CreateOverlay()
    {
        var imageView = new UIImageView(UIImage.FromBundle("face-template.png"));
        imageView.ContentMode = UIViewContentMode.ScaleAspectFit;

        var screen = UIScreen.MainScreen.Bounds;
        imageView.Frame = screen;

        return imageView;
    }

我的共享代碼:

var photo = await Plugin.Media.CrossMedia.Current.TakePhotoAsync(new Plugin.Media.Abstractions.StoreCameraMediaOptions() {
            OverlayViewProvider = DependencyService.Get<IPhotoOverlay>().GetImageOverlayAsync,
            DefaultCamera = Plugin.Media.Abstractions.CameraDevice.Front});

在您的 Xamarin.iOS 服務中,您需要注冊依賴項,這是一個示例。

[assembly: Dependency (typeof (PhotoOverlayiOS))]
namespace UsingDependencyService.iOS
{
    public class PhotoOverlayiOS : IPhotoOverlay
    {

        public object GetImageOverlayAsync()
        {
            Func<object> func = CreateOverlay;

            return func;
        }

        public object CreateOverlay()
        {
            var imageView = new UIImageView(UIImage.FromBundle("face-template.png"));
            imageView.ContentMode = UIViewContentMode.ScaleAspectFit;

            var screen = UIScreen.MainScreen.Bounds;
            imageView.Frame = screen;

            return imageView;
        }  
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM