通过 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 实现相机功能

JSFiddle that illustrates my intended outcome:

此错误是由于用于 运行 加载项的底层浏览器控件的限制所致。我相信 Outlook 使用的是 Internet Explorer 或 Microsoft Edge(不是基于 Chromium 的)。当您的配置中 Outlook 使用新的基于 Chromium 的 Edge 浏览器 运行 您的加载项时,您不应收到此错误。可在 here.

找到有关 configuration/browsers for Outlook 加载项的文档