iPad iOS Safari getUserMedia 访问特定摄像头(前置或后置)
iPad iOS Safari getUserMedia acces specific camera ( front or back )
访问前置或后置摄像头的正确方法是什么。
目前我只能使用 "user" 摄像头(前置)。
我无法使用任何限制切换到后置摄像头。
使用特定的设备 ID 也不起作用:
var constraints = {
video: {
facingMode: "environment",
deviceId: "E858F78F6026428D45DD669617B4A881409AA4DA"
}
};
navigator.mediaDevices.getUserMedia(constraints).
有人能帮帮我吗?
一直在访问前置摄像头。
根据您的问题,我认为您已经成功调用 getUserMedia()
以获得用户访问摄像头的权限(否则您将无法使用前置摄像头)。这是必需的,因为以下 JSON 中的 label
值只有在用户已经授予访问权限时才会被填充。
在 iOS 你现在必须调用 navigator.mediaDevices.enumerateDevices()
并且会得到一个 "response JSON" 这样的:
[
{
"deviceId":"<firstID>",
"kind":"audioinput",
"label":"iPhone Microphone",
"groupId":""
},
{
"deviceId":"<secondID>",
"kind":"videoinput",
"label":"Back Camera",
"groupId":""
},
{
"deviceId":"<thirdID>",
"kind":"videoinput",
"label":"Front Camera",
"groupId":""
}
]
使用您想要的设备的 deviceId
或让用户使用基本 UI 选择它将使您可以使用后置摄像头。
注意: deviceId
值将在每次调用 enumerateDevices()
!
时更改
您也可以在调用 getUserMedia 时将其作为参数传入。
video: {
facingMode: {
exact: 'environment'
}
}
这将return后置摄像头的视频:
navigator.mediaDevices.getUserMedia({
video: {
facingMode: {
exact: 'environment'
}
}
})
访问前置或后置摄像头的正确方法是什么。
目前我只能使用 "user" 摄像头(前置)。
我无法使用任何限制切换到后置摄像头。
使用特定的设备 ID 也不起作用:
var constraints = {
video: {
facingMode: "environment",
deviceId: "E858F78F6026428D45DD669617B4A881409AA4DA"
}
};
navigator.mediaDevices.getUserMedia(constraints).
有人能帮帮我吗?
一直在访问前置摄像头。
根据您的问题,我认为您已经成功调用 getUserMedia()
以获得用户访问摄像头的权限(否则您将无法使用前置摄像头)。这是必需的,因为以下 JSON 中的 label
值只有在用户已经授予访问权限时才会被填充。
在 iOS 你现在必须调用 navigator.mediaDevices.enumerateDevices()
并且会得到一个 "response JSON" 这样的:
[
{
"deviceId":"<firstID>",
"kind":"audioinput",
"label":"iPhone Microphone",
"groupId":""
},
{
"deviceId":"<secondID>",
"kind":"videoinput",
"label":"Back Camera",
"groupId":""
},
{
"deviceId":"<thirdID>",
"kind":"videoinput",
"label":"Front Camera",
"groupId":""
}
]
使用您想要的设备的 deviceId
或让用户使用基本 UI 选择它将使您可以使用后置摄像头。
注意: deviceId
值将在每次调用 enumerateDevices()
!
您也可以在调用 getUserMedia 时将其作为参数传入。
video: {
facingMode: {
exact: 'environment'
}
}
这将return后置摄像头的视频:
navigator.mediaDevices.getUserMedia({
video: {
facingMode: {
exact: 'environment'
}
}
})