我的目标是开发一个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 dev-server),对相机的请求直接转到catch块,甚至没有提示用户是否允许。这是输出:
PermissionDeniedError: null我的问题是:我需要如何更改上面的代码才能通过Outlook-Addin实现相机功能
发布于 2020-12-05 09:16:48
此错误是由于用于运行外接程序的基础浏览器控件的限制造成的。我相信Outlook正在使用Internet Explorer或Microsoft Edge (不是基于Chromium的)。如果您的配置中Outlook使用新的基于Chromium的Edge浏览器来运行外接程序,则不应出现此错误。有关Outlook外接程序的配置/浏览器的文档可以在here中找到。
https://stackoverflow.com/questions/65134380
复制相似问题