此页面 已准备就绪

注意: WebPlatform 项目在 2012 年至 2015 年间由多个维护者支持,现已停止维护。该网站现在可在 github 上找到。

getUserMedia

摘要

提示用户授权使用媒体设备,例如摄像头或麦克风。如果用户授予权限,则会在调用应用程序上以 LocalMediaStream 对象作为参数调用 successCallback。

dom/Navigator 的方法 dom/Navigatordom/Navigator

语法

var stream = navigator.getUserMedia(constraints, successCallback, errorCallback);

参数

constraints

数据类型
MediaStreamConstraints

constraints 参数是一个 MediaStreamConstraints 对象,包含两个布尔成员:video 和 audio。这些描述了支持 LocalMediaStream 对象的媒体类型。必须指定其中一个或两个来验证约束参数。如果浏览器不支持指定的约束,getUserMedia 会使用 NOT_SUPPORTED_ERROR 调用 errorCallback。如果浏览器找不到具有指定类型的任何媒体轨道,getUserMedia 会使用 MANDATORY_UNSATISFIED_ERR 调用 errorCallback。

如果对象中未指定值或成员,则成员的值默认为 false。以下演示了如何为音频和视频设置约束

{ video: true, audio: true }

还有其他可用的约束。 http://simpl.info/getusermedia/constraints/ 演示了 maxWidthmaxHeight 约束的使用。目前在 libjingle 级别支持一组分辨率。它们总结在 此 chromium issue 中,并且可以在 libjingle 源代码 中确认

successCallback

数据类型
function

getUserMedia 函数将使用包含媒体流的 LocalMediaStream 对象调用 successCallback 中指定的函数。您可以将该对象分配给适当的元素并对其进行操作,如以下示例所示

function(localMediaStream) {
   var video = document.querySelector('video');
   video.srcObject = localMediaStream;
   video.onloadedmetadata = function(e) {
      // Do something with the video here.
   };
},

errorCallback

数据类型
function

(可选)

getUserMedia 函数将使用一个代码参数调用 errorCallback 中指定的函数。错误代码如下所述

  • PERMISSION_DENIED - 用户拒绝了使用操作所需的媒体设备的权限。
  • NOT_SUPPORTED_ERROR - 浏览器不支持指定的约束。
  • MANDATORY_UNSATISFIED_ERROR - 未找到约束中指定的类型的任何媒体轨道。

返回值

返回一个 LocalMediaStreamLocalMediaStream 类型的对象

示例

此实时示例使用功能检测来确定当前网络浏览器和操作系统版本是否支持 navigator.getUserMedia 方法。


查看实时示例

备注

ms 前缀的方法仅在 windows 8 操作系统上可用。在撰写本文时,标准的 getUserMedia 方法“正在开发中”。

署名