我正在使用Titanium SDK 3.1.2并部署iOS和Android。 您可以找到我的叠加层HERE的代码。我这样做是因为代码很大,并希望我的问题清晰明了。 我正在尝试使用以下功能为相机创建自己的叠加层: 拍张照片。 显示摄像机。 打开画廊。 关闭相机。 我可以关闭相机并拍照,但我无法打开照片库。我的galleryButton有一个像这样的单点击事件:
galleryButton.addEventListener("singletap", function(e){
openKineduPhotoGallery();
Ti.Media.hideCamera();
});
但是当我这样做时没有任何反应,之后我无法关闭相机也无法拍照。如果我尝试拍照,我会收到以下错误:
Script Error {
backtrace = "#0 () at file://localhost/var/mobile/Applications/79D9256C-7782-4323-A371-1AD45B37D037/Full.app/ui/common/GenericWindow.js:1\n#1 () at file://localhost/var/mobile/Applications/79D9256C-7782-4323-A371-1AD45B37D037/Full.app/ui/common/CreateMoment.js:1";
line = 1;
message = "'null' is not an object (evaluating 'o.type')";
name = TypeError;
sourceId = 81147840;
sourceURL = "file://localhost/var/mobile/Applications/79D9256C-7782-4323-A371-1AD45B37D037/Full.app/ui/common/GenericWindow.js";
}
我无法弄清楚哪个对象变为空,因为它出现了。 我试图交换我调用方法的顺序,使它看起来像这样:
galleryButton.addEventListener("singletap", function(e){
Ti.Media.hideCamera();
openKineduPhotoGallery();
});
但是这只是隐藏相机并且根本没有显示画廊,而且我在iOS中收到以下警告:
Nov 6 18:37:20 Nenvo-iPod Full[3240] <Warning>: *** Assertion failure in -[UIWindowController transition:fromViewController:toViewController:target:didEndSelector:], /SourceCache/UIKit/UIKit-2380.17/UIWindowController.m:211
Nov 6 18:37:20 Nenvo-iPod Full[3240] <Warning>: Warning: Attempt to dismiss from view controller <UIImagePickerController: 0x1e5e17a0> while a presentation or dismiss is in progress!
我认为这是hideCamera方法的错误,所以我评论说但只是在showCamera方法上触发了错误函数,我得到了一个像这样的JSON错误对象:
{
"type": "error",
"code": 1,
"source": [object MediaModule],
"success": false
}
我试图对MediaModule进行字符串化,但它只返回了一个空对象。 甚至可以从相机覆盖层打开图库吗?我有什么选择?我正在尝试实现类似于instagram拍照,录制视频和从图库中选择图片的工作流程。
答案 0 :(得分:0)
回答以下问题实际上当你调用hideCamera并打开PhotoGallery时,两者都作为模态窗口打开,所以我们需要在摩擦几秒后调用openKineduPhotoGallery函数。
galleryButton.addEventListener("singletap", function(e){
Ti.Media.hideCamera();
openKineduPhotoGallery();
});
所以你应该尝试下面的代码。
galleryButton.addEventListener("singletap", function(e){
Ti.Media.hideCamera();
setTimeout(function(){
openKineduPhotoGallery();
},500);
});