Cordova 相机插件返回绿色图片 Windows Phone 8.1
Posted
技术标签:
【中文标题】Cordova 相机插件返回绿色图片 Windows Phone 8.1【英文标题】:Cordova Camera Plugin returns green pictures Windows Phone 8.1 【发布时间】:2015-05-23 19:26:02 【问题描述】:非常奇怪的行为:使用 cordova 相机插件拍摄第二张或第三张图片后,返回的图片是绿色的,大约 200kb,而通常大约 2mb。当拍摄更多“绿色”照片时,应用程序崩溃并且默认相机屏幕变为绿色,直到手机重新启动。
尝试了不同的参数,比如获取 url 而不是 base64,不同的图片大小 - 没有运气。
这是在诺基亚 Lumia 520 上复制的,但 Microsoft Lumia 535 允许拍摄大约 6 张照片。虽然 android 工作正常。
代码如下:
navigator.camera.getPicture(onSuccess, onFail,
quality: 50,
destinationType: Camera.DestinationType.DATA_URL,
encodingType: Camera.EncodingType.JPEG,
sourceType : Camera.PictureSourceType.CAMERA
);
尝试使用捕获插件结果是一样的。
【问题讨论】:
从手机获取错误转储显示:异常代码 0xC0000194(非常有意义的消息)。 Dev windows phone 说:“0xC0000194 NonResponsiveProcess 进程由于未知原因变得无响应。” 我也在使用诺基亚 Lumia 520。硬重置您的手机可以快速解决此问题。我认为没有办法阻止这种情况。即使升级到 cordova-camera 2.0.0 这个问题有时仍然会发生。可能是过热了。 【参考方案1】:你可以试试这个:
camera:
pictureSource: "UNDEFINED",
destinationType: "UNDEFINED",
cameraInitialize: function ()
pictureSource = navigator.camera.PictureSourceType;
destinationType = navigator.camera.DestinationType;
cameraOptions = quality: 50, allowEdit: true, destinationType: destinationType.DATA_URL, correctOrientation: true
galleryOptions = quality: 50, destinationType: destinationType.DATA_URL, sourceType: pictureSource.PHOTOLIBRARY
,
getPicture: function (cameraSuccess, cameraError, cameraOptions)
navigator.camera.getPicture(cameraSuccess, cameraError, cameraOptions);
,
【讨论】:
感谢您的帮助。没有运气。【参考方案2】:对我来说,到目前为止(根据微软支持)唯一的解决方案是硬重置您的手机。 我有一个运行 windows phone 8.1 的古老 Lumia,它在我的应用程序中遇到了同样的问题。
我实际上认为设备过热。
您还应该采取一些措施来帮助避免 WP 应用中出现相机问题:
假设你使用cordova,检查视频对象是否有最大值 z-index 并检查它是否没有堆叠在您的应用程序下。 如果您还使用 Angular,某些按钮类型会在 IE 上触发 ng-click 两次,因此相机会打开两次。 实施 cordova-camera-plugin 2.0.0 修复了类似的问题 双击相机并使其崩溃我希望这对你痛苦的任务有所帮助。
【讨论】:
以上是关于Cordova 相机插件返回绿色图片 Windows Phone 8.1的主要内容,如果未能解决你的问题,请参考以下文章
如何显示 Cordova PhotoLibrary 返回的图像?