我用相机iPhone在HTML5与目前正在开发的应用程序
<input type="file" accept="capture=camera">
问题是,我有一个小清单给我的图书馆,我的相机之间的选择。
我的想法是有两个按钮,一个图书馆和其他相机。
我所知道的只给了库,但没有摄像机的方式。
问:有没有一种方法来分离两种类型?
我用相机iPhone在HTML5与目前正在开发的应用程序
<input type="file" accept="capture=camera">
问题是,我有一个小清单给我的图书馆,我的相机之间的选择。
我的想法是有两个按钮,一个图书馆和其他相机。
我所知道的只给了库,但没有摄像机的方式。
问:有没有一种方法来分离两种类型?
Unfortunaly不可能的:/
从提取HTML媒体捕获-安全和隐私方面的考虑 :
此外,用户代理执行建议启用输入设备时提供指示给用户,并有可能使用户终止这样的捕获。 类似地,用户代理建议提供用户控制,例如,以允许用户:
选择准确的媒体捕捉设备是否存在使用
相同类型的多个设备(例如,在前置摄像头
除了主相机)。在禁用时,声音捕捉
视频拍摄模式。
我有这个问题太,我没遇到过一个解决方案,我只找到非官方消息来源指出,这是不可能的。 所有你能做的就是要求或者video/*
或image/*
通过accept
属性。
这是不可能在iOS6的通过10它在Android 3.0+工作。
在capture
属性,通过引入HTML媒体捕获 ,应强制的iOS直接跳到凸轮应用程序,但它不支持。
从规范 :
捕获属性是一个布尔值属性,如果指定,指示对媒体直接从设备的环境中拍摄......是首选。
PS:你的代码稍微不正确,你应该使用<input accept="video/*,image/*" capture >
到:
见正确HTML媒体捕获语法的更多细节。
编写如下takePhoto阿克顿方法:
- (IBAction)takePhoto:(UIButton *)sender {
UIImagePickerController *picker = [[UIImagePickerController alloc] init];
picker.delegate = self;
picker.allowsEditing = YES;
picker.sourceType = UIImagePickerControllerSourceTypeCamera;
[self presentViewController:picker animated:YES completion:NULL];
}
最后,我们做了selectPhoto操作方法相同,但改变sourceType的到UIImagePickerControllerSourceTypePhotoLibrary。
- (IBAction)selectPhoto:(UIButton *)sender {
UIImagePickerController *picker = [[UIImagePickerController alloc] init];
picker.delegate = self;
picker.allowsEditing = YES;
picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
[self presentViewController:picker animated:YES completion:NULL];
}
实施的UIImagePickerController的委托方法
当用户拍摄用相机中的照片和调整图像大小(因为我们说allowsEditing = YES时我们创建图片选择器相片尺寸调整是允许的)。 这是一个的NSDictionary包含,除其他事项外,将原始图像和编辑后的图像(通过标签UIImagePickerControllerEditedImage访问)。
(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
UIImage *chosenImage = info[UIImagePickerControllerEditedImage];
self.imageView.image = chosenImage;
[picker dismissViewControllerAnimated:YES completion:NULL];
}