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爲空值代碼在這code.Please幫我解決這個問題。 我添加了執行功能所需的功能。

+0

您是否在.Droid庫項目中添加了Dependency Service類來解析IMediaPicker? – Vishnu

+0

你可以給我想法添加依賴IOS和Windows手機。我目前使用Xlabs Dll作爲IMediaPicker界面。 –

+0

你可以給我想法添加依賴IOS和Windows手機。我目前使用Xlabs Dll IMediaPicker接口。我已經在所有平臺中添加了Dll,但沒有工作。 –

回答

0

按照以下過程中的意見解決問題:

添加在.Droid庫項目相關服務類,如example給予解決IMediaPicker和使用[assembly:Xamarin.Forms.Dependency(typeof(MediaPicker))]Reference

1

使用MediaPicker項目XLabs請仔細檢查你是否已經將下列所有物品裝箱:

  1. Add到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方法爲您的解決方案中的每個平臺。使用var mediaPicker = Resolver.Resolve<IMediaPicker>();來獲取實例。