MvvmCross picturechoosen 插件和相机卡住问题
Posted
技术标签:
【中文标题】MvvmCross picturechoosen 插件和相机卡住问题【英文标题】:MvvmCross picturechoosen plugin and camera stuck issue 【发布时间】:2014-02-08 06:39:12 【问题描述】:您好,我在使用 Xamarin 进行 ios 开发的 MvvmCross 图片选择器插件时遇到了一个奇怪的问题。我正在开发一种表单,用户可以在其中选择/拍摄多张照片和一段视频。
我的应用允许用户从相机胶卷中添加多张照片,或者直接从表单中捕获。
为了捕捉视频,我使用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;
谁能指导我我做错了什么?
【问题讨论】:
【参考方案1】:查看iOS Monotouch UIImagePickerController multiple photos / videos from camera,这似乎是 Xamarin.iOS 或 iOS/UIKit 中的问题。
您是否在主要的 MvvmCross 示例应用中发现了同样的问题?
如果这样做,那么您可以尝试更改 MvvmCross 代码以使用委托,而不是 iOS Monotouch UIImagePickerController multiple photos / videos from camera 中建议的 Xamarin.iOS C# 事件 - 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 支持,看看他们是否知道这个问题并有任何建议。
【讨论】:
我使用了var task = Mvx.Resolve<IMvxPictureChooserTask();
,现在问题似乎已经解决了(至少现在是这样)。感谢您的支持。以上是关于MvvmCross picturechoosen 插件和相机卡住问题的主要内容,如果未能解决你的问题,请参考以下文章