只允许访问HTML5中的相机设备

我目前正在开发应用程序使用相机的iPhone在HTML5与

<input type="file" accept="capture=camera"> 

问题是我有一个小列表,让我select我的图书馆和我的相机。

在这里输入图像说明

我的想法是有两个button,一个用于图书馆,另一个用于相机。

我知道只给图书馆的方式,而不是相机。

问:是否有办法分开这两种types?

不幸的是不可能:/

从HTML媒体捕获中提取- 安全和隐私考虑事项 :

此外,build议用户代理实现当启用input设备时向用户提供指示,并使得用户能够终止这种捕获。 同样,build议用户代理提供用户控制,例如允许用户:

  • select确切的媒体捕获设备,如果存在的话
    相同types的多个设备(例如,前置摄像头)
    除了主摄像头之外)。

  • 禁用声音捕捉时在
    video拍摄模式。

我也有这个问题,我没有遇到一个解决scheme,我只发现非官方的消息来源,说这是不可能的。 所有你可以做的是通过accept属性需要video/*image/*

iOS6到10是不可能的。它可以在Android 3.0+上运行。

由HTML Media Capture引入的capture属性应该强制iOS直接跳转到cam应用程序,但不支持。

从规格 :

capture属性是一个布尔属性,如果指定,则表示直接从设备环境捕获媒体…是首选。

PS:你的代码有点不正确,你应该使用<input accept="video/*,image/*" capture >来:

  1. 捕捉video和照片
  2. 直接跳到凸轮(支持时)

有关更多详细信息,请参阅正确的HTML媒体捕获语法 。

编写下面的takePhoto acton方法:

 - (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的委托方法

当用户使用相机拍摄照片并调整图像尺寸时(由于我们在创build图像select器时已经说过允许编辑= YES,因此可以调整照片大小)。 这是一个NSDictionary,其中包含原始图像和编辑图像(可通过标签UIImagePickerControllerEditedImage访问)。

 (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { UIImage *chosenImage = info[UIImagePickerControllerEditedImage]; self.imageView.image = chosenImage; [picker dismissViewControllerAnimated:YES completion:NULL]; }