1

Я новичок в xamarin.in моего проекта открытой галереи для выбора изображения для этого я использовал IMediaPicker код interface.my, как показано ниже:MediaPicker не работает с Xamarin.Forms

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 равен нулю значение в этом коде. Пожалуйста, помогите мне решить эту проблему. Я добавил возможности, необходимые для выполнения функции.

+0

Вы добавили класс службы Dependency в проект библиотеки DLD для разрешения IMediaPicker? – Vishnu

+0

Можете ли вы дать мне идею добавить зависимость от IOS и телефона Windows. В настоящее время я использую Xlabs Dll для интерфейса IMediaPicker. –

+0

Можете ли вы дать мне идею для добавления зависимости от IOS и телефона Windows. В настоящее время я использую Xlabs Dll для интерфейса IMediaPicker. Я добавил Dll во всю платформу, но не работал. –

ответ

0

Согласно комментариям следующий процесс решает проблему:

Добавить класс Dependency Service в проекте библиотеки .Droid разрешить IMediaPicker, как указано в example и использовать [assembly:Xamarin.Forms.Dependency(typeof(MediaPicker))]Reference

1

Чтобы использовать MediaPicker элемент из XLabs, пожалуйста, проверьте, что вы собрали все элементы ниже:

  1. Добавить ссылка на XLabs.IoC для всех ваших проектов (PCL, Android, IOS и т.д.)
  2. Initialize распознавателя используя следующий фрагмент кода:

    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>();, чтобы получить экземпляр.