弃用
This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the
兼容性表格
at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.
The deprecated
Navigator.getUserMedia()
method prompts the user for permission to use up to one video input device (such as a camera or shared screen) and up to one audio input device (such as a microphone) as the source for a
MediaStream
.
If permission is granted, a
MediaStream
whose video and/or audio tracks come from those devices is delivered to the specified success callback. If permission is denied, no compatible input devices exist, or any other error condition occurs, the error callback is executed with a
MediaStreamError
object describing what went wrong. If the user instead doesn't make a choice at all, neither callback is executed.
This is a legacy method. Please use the newer
navigator.mediaDevices.getUserMedia()
instead. While technically not deprecated, this old callback version is marked as such, since the specification strongly encourages using the newer promise returning version.
navigator.getUserMedia(constraints, successCallback, errorCallback);
constraints
MediaStreamConstraints
object specifying the types of media to request, along with any requirements for each type. For details, see the
constraints
section under the modern
MediaDevices.getUserMedia()
method, as well as the article
Capabilities, constraints, and settings
.
successCallback
MediaStream
object that contains the media stream. Your callback can then assign the stream to the desired object (such as an
<audio>
or
<video>
element), as shown in the following example:
function(stream) {
var video = document.querySelector('video');
video.srcObject = stream;
video.onloadedmetadata = function(e) {
// Do something with the video here.
};
}
errorCallback
errorCallback
is invokedwith a
MediaStreamError
object as its sole argument; this object is is modeled on
DOMException
. See {anch("Errors")}} below for a list of the errors which can occur.
此处范例,使用
getUserMedia()
, including code to cope with various browsers' prefixes. Note that this is the deprecated way of doing it: See the
范例
section under the
MediaDevices.getUserMedia()
for modern examples.
navigator.getUserMedia = navigator.getUserMedia ||
navigator.webkitGetUserMedia ||
navigator.mozGetUserMedia;
if (navigator.getUserMedia) {
navigator.getUserMedia({ audio: true, video: { width: 1280, height: 720 } },
function(stream) {
var video = document.querySelector('video');
video.srcObject = stream;
video.onloadedmetadata = function(e) {
video.play();
};
},
function(err) {
console.log("The following error occurred: " + err.name);
}
);
} else {
console.log("getUserMedia not supported");
}
要使用
getUserMedia()
in an installable app (for example, a
Firefox OS app
), you need to specify one or both of the following fields inside your manifest file:
"permissions": {
"audio-capture": {
"description": "Required to capture audio using getUserMedia()"
},
"video-capture": {
"description": "Required to capture video using getUserMedia()"
}
}
见 permission: audio-capture and permission: video-capture 了解更多信息。
新代码应该使用
Navigator.mediaDevices.getUserMedia()
代替。
| 桌面 | 移动 | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
getUserMedia
弃用
非标
|
Chrome
53
|
Edge 12 |
Firefox
17
Prefixed
|
IE No |
Opera
18
Prefixed
|
Safari No |
WebView Android
53
|
Chrome Android
53
|
Firefox Android
24
Prefixed
|
Opera Android
12 — 14
|
Safari iOS No |
Samsung Internet Android
6.0
|
完整支持
不支持
非标。预期跨浏览器支持较差。
弃用。不要用于新网站。
见实现注意事项。
要求使用供应商前缀或不同名称。
MediaDevices.getUserMedia()
that replaces this deprecated method.
getUserMedia() for taking photos rather than video.
Navigator
activeVRDisplays
appCodeName
appName
appVersion
battery
buildID
clipboard
connection
cookieEnabled
credentials
deviceMemory
doNotTrack
geolocation
keyboard
语言
languages
locks
maxTouchPoints
mediaDevices
mediaSession
onLine
oscpu
permissions
platform
product
productSub
serviceWorker
userAgent
vendor
vendorSub
webdriver
xr
AudioStreamTrack
BlobEvent
CanvasCaptureMediaStream
ConstrainBoolean
ConstrainDOMString
ConstrainDouble
ConstrainLong
DoubleRange
HTMLCanvasElement.captureStream()
LongRange
MediaDevices
MediaStream
MediaStreamTrack
MediaStreamTrackEvent
MediaTrackCapabilities
MediaTrackConstraints
MediaTrackSettings
MediaTrackSupportedConstraints
Navigator.mediaDevices
NavigatorUserMedia
NavigatorUserMediaError
VideoStreamTrack
navigator.mediaDevices.getUserMedia()