2014-02-08 2 views
0

Привет, У меня возникла странная проблема с плагином picturejoser MvvmCross для разработки iOS с использованием Xamarin. Я разрабатываю форму, в которой пользователь может выбирать/брать несколько фотографий и видео.MvvmCross picturechoosen плагин и камера застряли проблема

Мое приложение позволяет пользователям добавлять несколько фотографий либо из рулона камеры, либо для захвата непосредственно из формы.

Для съемки видео я использую Xamarin.Mobile api.

Я использую изображение MvvmCross, выбранное для этого. Проблема возникает, когда с камерой снимаются 1 или 2 изображения/видео.

Как только 1 или 2 изображения/видео будут сняты при повторном вводе изображения камеры, изображение будет статическим и не обновит искатель камеры. Вид застрял в последнем кадре того, что было зафиксировано последним.

У меня такая же проблема described here, но только разница в том, что я использовал MvvmCross picture choosen plugin.

в моем коде, я использовал, чтобы связать команду с моей кнопки, как следующие:

// MyView is inherited from MvxViewController (of mvvmcross) 
var set = this.CreateBinding<MyView,MyViewModel>(); 

//Binding button to picture chooser command 
set.Bind(this.TakePhotoButton).To(vm=>vm.TakePictureCommand); 

и на мой взгляд, модель:

public MvxCommand TakePictureCommand 
{ 
    get 
    { 
    this.takePictureCommand => this.takePictureCommand ?? new MvxCommand(()=> 
      this.pictureChooserTask.TakePicture(300,95,this.OnPictureSelected, 
      ()=>{}),,this.CanTakeOrChoosePicture); 
    } 
} 

private void OnPictureSelected(Stream stream) 
{ 
    using(var memoryStream = new MemoryStream()) 
    { 
    stream.CopyTo(memoryStream); 
    // PictureBytes is a property which i am using to bind with image view 
    this.PictureBytes= memoryStream.ToArray(); 
    } 
} 

    private bool CanTakeOrChoosePicture() 
    { 
    return this.PictureBytes= null; 
    } 

может любой один гид мне, что я делаю неправильно?

ответ

2

Рассматривая iOS Monotouch UIImagePickerController multiple photos/videos from camera, похоже, что это проблема в Xamarin.iOS или в iOS/UIKit.

Вы видите ту же проблему в основных примерах приложений MvvmCross?

Если вы это сделаете, то вы можете попробовать изменить код MvvmCross использовать делегатов вместо событий Xamarin.iOS C#, как предложено в iOS Monotouch UIImagePickerController multiple photos/videos from camera - код MVX в https://github.com/MvvmCross/MvvmCross/blob/v3.1/Plugins/Cirrious/PictureChooser/Cirrious.MvvmCross.Plugins.PictureChooser.Touch/MvxImagePickerTask.cs

Другая вещь, которую вы, возможно, может попробовать, является использовать отдельную задачу для каждого запроса изображения - например используя var task = Mvx.Resolve<IMvxPictureChooserTask();, чтобы каждый раз получать новую задачу вместо использования одной и той же задачи впрыска конструктора каждый раз.

Если ничего больше не помогает, попробуйте связаться со службой поддержки Xamarin, чтобы узнать, знают ли они о проблеме и какие-либо предложения.

+0

Я использовал 'var task = Mvx.Resolve SoftSan

Смежные вопросы