MediaPicker不使用Xamarin.Forms

时间:2016-05-31 04:43:40

标签: xamarin xamarin.ios xamarin.android xamarin.forms xamarin-studio

我是xamarin的新手。在我的项目开放图库中为此选择图像我使用了IMediaPicker interface.my代码如下:

IMediaPicker mediaPicker;
ImageSource imageSource;
async void OnTapEntertainer(object sender, EventArgs args)
{          
   await TakePicture();
}

private async Task TakePicture()
{           
        mediaPicker = DependencyService.Get<IMediaPicker>();
        imageSource = null;
        var mediaFile = await mediaPicker.SelectPhotoAsync(new CameraMediaStorageOptions
        {
            DefaultCamera = CameraDevice.Front,
            MaxPixelDimension = 400
        });
        imageSource = ImageSource.FromStream(() => mediaFile.Source);
        Imgmn.Source = imageSource;
}

我在此代码中 mediaPicker为空值。请帮我解决此问题。 我添加了执行功能所需的功能。

2 个答案:

答案 0 :(得分:1)

要使用 XLabs 中的 MediaPicker 项目,请仔细检查您是否已完成以下所有项目:

  1. XLabs.IoC 的引用添加到您的所有项目(PCL,Android,iOS等)
  2. 使用以下代码段初始化解析器

    var resolverContainer = new SimpleContainer();
    resolverContainer.Register<IMediaPicker, MediaPicker>()
    .Register<IDependencyContainer>(t => resolverContainer);
    Resolver.SetResolver(resolverContainer.GetResolver());
    

    将此代码放在解决方案中每个平台的Xamarin.Forms.Forms.Init方法之前。

  3. 使用var mediaPicker = Resolver.Resolve<IMediaPicker>();获取实例。

答案 1 :(得分:0)

根据以下流程中的评论解决了问题:

在.Droid库项目中添加Dependency Service类以解析example中给出的IMediaPicker并使用[assembly:Xamarin.Forms.Dependency(typeof(MediaPicker))] Reference