Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MediaPicker不使用Xamarin.Forms_Xamarin_Xamarin.ios_Xamarin.android_Xamarin.forms_Xamarin Studio - Fatal编程技术网

MediaPicker不使用Xamarin.Forms

MediaPicker不使用Xamarin.Forms,xamarin,xamarin.ios,xamarin.android,xamarin.forms,xamarin-studio,Xamarin,Xamarin.ios,Xamarin.android,Xamarin.forms,Xamarin Studio,我是xamarin的新手。在我的项目“选择图像”的开放图库中,我使用了IMedipicker界面。我的代码如下: IMediaPicker mediaPicker; ImageSource imageSource; async void OnTapEntertainer(object sender, EventArgs args) { await TakePicture(); } private async Task TakePicture() {

我是xamarin的新手。在我的项目“选择图像”的开放图库中,我使用了IMedipicker界面。我的代码如下:

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;
}
IMedipicker mediaPicker;
图像源图像源;
异步void ontapentainer(对象发送方、事件args args)
{          
等待拍照();
}
私有异步任务TakePicture()
{           
mediaPicker=DependencyService.Get();
imageSource=null;
var mediaFile=wait mediaPicker.SelectPhotoAsync(新的摄像机存储选项
{
DefaultCamera=CameraDevice.Front,
MaxPixelDimension=400
});
imageSource=imageSource.FromStream(()=>mediaFile.Source);
Imgmn.Source=图像源;
}
我在这段代码中得到了mediaPicker为空值。请帮助我解决这个问题。
我增加了执行功能所需的功能。

根据评论,以下过程解决了问题:

在.Droid库项目中添加依赖项服务类以解析中给出的IMedipicker,并使用
[assembly:Xamarin.Forms.Dependency(typeof(MediaPicker))]

要使用XLabs中的MediaPicker项,请仔细检查是否已删除以下所有项:

  • 在所有项目(PCL、Android、iOS等)中添加对XLabs.IoC的引用
  • 使用以下代码段初始化解析器:

    var resolverContainer = new SimpleContainer();
    resolverContainer.Register<IMediaPicker, MediaPicker>()
    .Register<IDependencyContainer>(t => resolverContainer);
    Resolver.SetResolver(resolverContainer.GetResolver());
    
    var resolverContainer=new SimpleContainer();
    resolverContainer.Register()
    .Register(t=>resolverContainer);
    SetResolver(resolverContainer.GetResolver());
    
    将此代码放在解决方案中每个平台的
    Xamarin.Forms.Forms.Init
    方法之前

  • 使用
    var mediaPicker=Resolver.Resolve()以获取实例


  • 您是否在.Droid库项目中添加了依赖项服务类来解决IMedipicker?您能告诉我在IOS和windows phone上添加依赖项的想法吗。我目前使用Xlabs Dll作为IMedipicker接口。你能告诉我如何在IOS和windows phone上添加依赖项吗。我目前使用Xlabs Dll作为IMedipicker接口。我在所有平台中都添加了Dll,但不起作用。只有在Droid项目中检查MediaPicket.cs并添加该文件。你能为我提供实现这一点的指导吗。。