--- title: CameraControl.getPreviewStream slug: Web/API/CameraControl/getPreviewStream translation_of: Archive/B2G_OS/API/CameraControl/getPreviewStream ---

{{APIRef("Camera API")}}{{ non-standard_header() }}

概述

该方法用来根据指定的配置,从摄像头获取到一个{{domxref("MediaStream")}}数据流,你可以从该数据流中捕获到静态的照片.

注:使用该方法获取到的数据流仅能用来捕获静态的照片.如果你想录制视频,那么必须使用{{domxref("CameraControl.getPreviewStreamVideoMode()")}}方法来代替.

语法

CameraControl.getPreviewStream(options, onsuccess[, onerror]);

参数

options
一个包含有两个属性widthheight的对象.该对象可以通过{{domxref("CameraCapabilities")}}.previewSizes属性获取到.
onsuccess
一个回调函数,会被传入一个参数,这个参数是一个{{domxref("MediaStream")}}数据流对象,可以使用该数据流对象捕获静态的图像.
onerror {{optional_inline()}}
一个回调函数,会被传入一个参数,这个参数是一个表示错误原因的字符串.如果在尝试获取MediaStream数据流对象时发生了错误,则会调用该函数.

示例

这个例子演示了如何通过使用{{domxref("MediaStream")}}数据流对象来从摄像头捕获并播放静态的图片.

var display = document.getElementsByTagName('video')[0];
var options = {
  camera: navigator.mozCameras.getListOfCameras()[0]
};

function onStreamReady( stream ) {
  display.mozSrcObject = stream;
  display.play();
}

function onAccessCamera( camera ) {
  var size = camera.capabilities.previewSizes[0];

  camera.getPreviewStream(size, onStreamReady);
};

navigator.mozCameras.getCamera(options, onAccessCamera)

规范

不属于任何规范.当WebRTC Capture and Stream API实现时,该方法应该会被删除.

相关链接