【问题标题】:navigator.mediaDevices is Undefined only In an AngularJs Contrallernavigator.mediaDevices 仅在 AngularJs 控制器中未定义
【发布时间】:2020-04-26 20:16:53
【问题描述】:

我正在尝试访问 AngularJs 控制器中的 javasctipt mediaDevices 这是我的控制器代码:

(function () {
    'use strict';

    angular.module('app')
        .controller('AssistenzaCtrl', ['$scope', 'largeTabController', 'readSelect', '$mdDialog', '$interval', '$http', '$window', AssistenzaCtrl])

    function AssistenzaCtrl($scope, largeTabController, readSelect, $mdDialog, $interval, $http, $window ) {

        $scope.init = function () {
            if (!navigator.mediaDevices || !navigator.mediaDevices.enumerateDevices) {
              console.log("enumerateDevices() not supported.");
            } 
            navigator.mediaDevices.enumerateDevices()
            .then(function(devices) {
              devices.forEach(function(device) {
                console.log(device.kind + ": " + device.label +
                            " id = " + device.deviceId);
              });
            })
            .catch(function(err) {
              console.log(err.name + ": " + err.message);
            });             
        }   
    }
})();   

如果我使用 F12 工具测试我的控制器 navigator.mediaDevices 未定义,但我的浏览器支持 mediaDevices,因为如果我在没有 AngularJs 的独立页面中运行相同的代码,我可以成功枚举我的设备。

AngularJs 和 getUserMedia() 之间是否存在兼容性问题?

【问题讨论】:

    标签: angularjs getusermedia


    【解决方案1】:

    问题与使用 http 协议而不是 od https 有关。 浏览器仅对 https 或到 localhost 的连接启用 getUserMedia。

    我希望这个答案可以帮助别人。

    【讨论】:

      猜你喜欢
      • 2020-07-12
      • 2015-08-03
      • 2015-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-01
      • 1970-01-01
      相关资源
      最近更新 更多