这个错误在ios7上被抛出,我在Titanium中构建了一个小例子Camera app,这里是代码:
index.js
var overlay = Ti.UI.createView({
width: Ti.UI.FILL,
height: Ti.UI.FILL,
backgroundColor: 'transparent'
});
var takePhotoBtn = Ti.UI.createButton({
width: '200dp',
height: '60dp',
bottom: '100dp',
backgroundColor: '#FFF'
});
var btnLbl = Ti.UI.createLabel({
text: 'Take Photo'
});
takePhotoBtn.addEventListener('click', function(e){
Ti.Media.takePicture()
});
takePhotoBtn.add(btnLbl);
overlay.add(takePhotoBtn);
$.back.addEventListener('click', showCamera);
$.index.open();
function showCamera(){
Ti.Media.showCamera({
success: function(event){
var imageData = event.media;
$.resultImg.setImage(imageData);
Ti.Media.hideCamera();
},
error: function(error){
Ti.API.info('Error: ' + JSON.stringify(error));
},
overlay : overlay,
saveToPhotoGallery: false,
allowEditing: false,
mediaTypes:[Ti.Media.MEDIA_TYPE_PHOTO],
showControls : false,
autohide : false,
//make the picture inside the camera smaller so that we
//can than place an overlay around it
transform: Ti.UI.create2DMatrix({
scale : 0.5
})
});
Ti.Media.switchCamera(Ti.Media.CAMERA_FRONT);
}
并在index.xml中
<Alloy>
<Window class="container">
<Button id="back" title="Start camera"/>
<ImageView id="resultImg"/>
</Window>
</Alloy>
每次拍照时都不会发生,但可能每10次拍摄一次。请帮忙!!!
答案 0 :(得分:1)
当您连续拍摄多张照片时,iPhone处理以前的处理内存不足。当您使用Objective-C时,可以使用以下代码添加观察者:
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(cameraIsReady:)
name:AVCaptureSessionDidStartRunningNotification object:nil];
但是,这个API没有在Titanium中实现,所以现在要解决这个问题,你必须抓住这个错误,等待几秒钟显示用户快速信息,然后再试一次。