2014-02-08 57 views
0

嗨我遇到了一個奇怪的問題,使用Xamarin的iOS開發MvvmCross picturechooser插件。我正在開發一個表單,用戶可以選擇/拍攝多張照片和一個視頻。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