通过 Outlook-Addin 访问用户的系统摄像头
Accessing a User's system camera via Outlook-Addin
我的目标是使用 Script Lab 开发一个 Outlook 加载项,允许用户通过电子邮件录制视频。我目前的目标是让用户单击一个按钮,该按钮将打开他们的相机并显示其输出。在浏览器上访问相机时(即Chrome),我可以通过以下代码访问用户的系统相机:
index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>video app</title>
</head>
<body>
<!-- HTML DISPLAY CODE -->
<video id="video" src=""></video>
<button onclick="openCamera()">start recording</button>
<!-- JS LOGIC -->
<script src="index.js"></script>
</body>
</html>
index.js
function openCamera() {
const constraints = {
video: true,
audio: false
}
navigator.mediaDevices.getUserMedia(constraints)
.then(mediaStream => {
var video = document.querySelector("video");
video.srcObject = mediaStream;
video.onloadedmetadata = function(e) {
video.play();
};
})
.catch(error => {
console.log(error.name + ":" + error.message);
})
}
当 运行 与 Outlook 加载项相同的脚本(在 Script Lab 以及 运行 本地 npm 开发服务器上)时,对相机的请求直接进入 catch 块甚至不提示用户许可。这是输出:
PermissionDeniedError: null
我的问题是:我需要如何更改上述代码以允许通过 Outlook-Addin 实现相机功能
此错误是由于用于 运行 加载项的底层浏览器控件的限制所致。我相信 Outlook 使用的是 Internet Explorer 或 Microsoft Edge(不是基于 Chromium 的)。当您的配置中 Outlook 使用新的基于 Chromium 的 Edge 浏览器 运行 您的加载项时,您不应收到此错误。可在 here.
找到有关 configuration/browsers for Outlook 加载项的文档
我的目标是使用 Script Lab 开发一个 Outlook 加载项,允许用户通过电子邮件录制视频。我目前的目标是让用户单击一个按钮,该按钮将打开他们的相机并显示其输出。在浏览器上访问相机时(即Chrome),我可以通过以下代码访问用户的系统相机:
index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>video app</title>
</head>
<body>
<!-- HTML DISPLAY CODE -->
<video id="video" src=""></video>
<button onclick="openCamera()">start recording</button>
<!-- JS LOGIC -->
<script src="index.js"></script>
</body>
</html>
index.js
function openCamera() {
const constraints = {
video: true,
audio: false
}
navigator.mediaDevices.getUserMedia(constraints)
.then(mediaStream => {
var video = document.querySelector("video");
video.srcObject = mediaStream;
video.onloadedmetadata = function(e) {
video.play();
};
})
.catch(error => {
console.log(error.name + ":" + error.message);
})
}
当 运行 与 Outlook 加载项相同的脚本(在 Script Lab 以及 运行 本地 npm 开发服务器上)时,对相机的请求直接进入 catch 块甚至不提示用户许可。这是输出:
PermissionDeniedError: null
我的问题是:我需要如何更改上述代码以允许通过 Outlook-Addin 实现相机功能
此错误是由于用于 运行 加载项的底层浏览器控件的限制所致。我相信 Outlook 使用的是 Internet Explorer 或 Microsoft Edge(不是基于 Chromium 的)。当您的配置中 Outlook 使用新的基于 Chromium 的 Edge 浏览器 运行 您的加载项时,您不应收到此错误。可在 here.
找到有关 configuration/browsers for Outlook 加载项的文档