2014-02-08 4 views
0

안녕하세요, Xamarin을 사용하여 iOS 개발 용 MvvmCross picturechooser 플러그인에 이상한 문제가 발생했습니다. 나는 사용자가 여러 사진과 비디오를 선택/찍을 수있는 양식을 개발 중입니다.MvvmCross 그림 선택 플러그인 및 카메라 멈춤 문제

내 앱을 사용하면 카메라 롤에서 여러 사진을 추가하거나 양식에서 직접 캡처 할 수 있습니다.

동영상 캡처의 경우 Xamarin.Mobile api을 사용합니다.

내가 선택한 MvvmCross 그림을 사용하고 있습니다. 이 문제는 카메라로 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 샘플 앱에서 같은 문제가 발생합니까? 당신이 경우에 iOS Monotouch UIImagePickerController multiple photos/videos from camera에 제안

, 당신은 대신 Xamarin.iOS C#을 이벤트 위임을 사용하는 MvvmCross 코드를 변경 시도 할 수 있습니다 - 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