h5做app能调用手机摄像头

在 HTML5 规范中,HTML5 定义了一个非常有用的 API --- MediaStream API,用于访问 WebRTC(网页实时通信)的用户数据,例如实时音频、视频和屏幕分享。其中,使用 MediaStream API 调用摄像头和麦克风是最常见的使用场景之一。

MediaStream API 工作原理:

在前端使用 MediaStream API 调用手机摄像头的过程中,其实主要是通过浏览器来实现控制的。MediaStream API 的作用是将摄像头的输出媒体流嵌入到 web 页面中,实现透明的嵌入式媒体应用程序。

MediaStream API 的工作流程可以分为三个步骤:

1. 获取流媒体对象

使用 MediaStream API 权限API获取流媒体对象,通过这个对象访问摄像头或麦克风,使用方法如下。

```javascript

var constraints = { video: true, audio: true };

navigator.mediaDevices.getUserMedia(constraints)

.then(function (stream) {

// stream 就是获取的摄像头对象,可以直接使用。

})

.catch(function (err) {

// 处理获取媒体流异常

});

```

getUserMedia 方法是一个浏览器 API,用于获取流媒体对象,其中的 constraints 参数用于控制获取摄像头或者麦克风等对象参数,video 和 audio 表示获取视频和音频。

2. 处理流媒体对象

获取到流媒体对象后,可以对媒体流进行处理。例如,获取视频流,然后将视频输出到网页上。

```javascript

var videoEle = document.querySelector('#myvideo');

videoEle.srcObject = stream;

videoEle.play();

```

在这段代码中,videoEle 表示网页中的 video 标签元素,使用 stream 对象设置视频源,然后调用 play 方法即可将视频播放出来。

3. 关闭流媒体对象

最后,务必要关闭流媒体对象,以释放媒体资源和回收内存资源。

```javascript

stream.getVideoTracks()[0].stop();

stream.getAudioTracks()[0].stop();

```

这段代码用于关闭视频和音频流。

总结:

通过 MediaStream API,可以很容易的使用 JavaScript 代码调用手机摄像头来实现视频聊天、扫描二维码等功能。MediaStream API 的优点是兼容性好、使用方便,而且支持多种设备类型,适合各种不同场合的应用。如果您需要开发基于浏览器的移动应用软件,MediaStream API 不容错过。