如何从网络应用访问移动相机?

时间:2011-12-20 19:50:34

标签: html5 mobile camera

在我的手机网络应用程序(非本机应用程序)中,我想拍照并上传,但我不想使用Adobe Flash。有没有办法做到这一点?

11 个答案:

答案 0 :(得分:230)

在iPhone iOS6和Android ICS之后,HTML5具有以下标签,可让您从设备拍摄照片:

 <input type="file" accept="image/*" capture="camera">

Capture可以使用相机,摄像机和音频等值。

我认为这个标签肯定不适用于iOS5,不确定。

答案 1 :(得分:31)

现在至少在Android上它相对容易。只需使用普通文件输入标签,当用户点击它时,手机会询问用户是否想使用相机(或文件管理器等)上传文件。只需用相机拍照,它就会自动添加和上传。

不知道iphone。也许有人可以启发。 编辑:Iphone的工作原理类似。

输入标记的示例:

<input type="file" accept="image/*" capture="camera">

答案 2 :(得分:19)

Safari&amp; iOS 6+和Android 2.2+上的Chrome支持HTML Media Capture,可让您使用设备的相机拍摄照片或选择现有照片:

<input type="file" accept="image/*">

以下是它在iOS 10上的工作原理:

enter image description here

Android 3.0+和iOS10.3 +上的Safari也支持capture属性,该属性用于直接跳转到相机。

<input type="file" accept="image/*" capture>

capture="camera"(字符串)和accept="image/*;capture=camera"(参数)是旧规范的一部分,并由{3}}(布尔)W3C候选推荐书替换。

支持文档:此2013 O'Reilly bookmy testing

答案 3 :(得分:13)

为了更新这个,现在的标准是:

<input type="file" name="image" accept="image/*" capture="environment">

访问面向环境(后方)的相机,

<input type="file" name="image" accept="image/*" capture="user">

用于面向用户的(前置)相机。要访问视频,请将“视频”替换为名称中的“图片”。

在iPhone 5c上测试,运行iOS 10.3.3,固件760,运行正常。

https://www.w3.org/TR/html-media-capture/

答案 4 :(得分:4)

AppMobi HTML5 SDK曾承诺从基于HTML5的应用程序访问本机设备功能(包括相机),但不再是谷歌所有。相反,请尝试HTML5-based answers in this post

答案 5 :(得分:4)

嗯,有一个新的HTML5功能可以访问本机设备相机 - “getUserMedia API”

注意:HTML5可以处理来自Android设备网页的照片捕获(至少在最新版本上,由Honeycomb OS运行;但它无法在iPhone上处理它,但iOS 6)。

答案 6 :(得分:4)

您可以使用WEBRTC,但遗憾的是并非所有网络浏览器都支持它。以下是浏览器支持它的链接 http://caniuse.com/stream

此链接可让您了解如何访问它(示例代码)。 http://www.html5rocks.com/en/tutorials/getusermedia/intro/

答案 7 :(得分:0)

我不知道有什么方法可以在没有其他机制的情况下从网络浏览器访问手机的相机(例如Flash或允许访问硬件API的某种类型的容器)

对于后者,请查看PhoneGap:http://docs.phonegap.com/phonegap_camera_camera.md.html

有了这个,您至少可以在iOS和基于Android的设备上访问相机。

答案 8 :(得分:0)

我认为你不能 - 有W3C draft API来获取音频或视频,但在任何主要的移动操作系统上都没有实现。

第二好唯一的选择是丹尼斯建议使用PhoneGap。这意味着您需要创建一个原生应用并将其添加到移动应用商店/市场。

答案 9 :(得分:0)

应该注意的是,已经实现了安全功能,要求应用程序在localhost下本地运行,或者通过SSL运行GetUserMedia()。

我在尝试了几个可用的演示时发现了这一点,并且在他们没有工作时感到失望!请参阅:New Security Restrictions

答案 10 :(得分:0)

您希望使用getUserMedia来访问相机。

本教程概述了从浏览器访问设备相机的基础知识:https://medium.com/@aBenjamin765/make-a-camera-web-app-tutorial-part-1-ec284af8dddf

注意:这适用于大多数Android设备,仅适用于iOS中的iOS。