Камера HTML5 не выключается после изменения маршрута в AngularJs

тестирую видео возможности HTML5. С директивойuserMediaЯя могу включить мою камеру на моем MacBook черезnavigator.getUserMedia() (на самом деле через адаптер, чтобы сделать его кросс-браузер - по крайней мере, тех, кто его поддерживает).

Но когда я меняю$routeЯ нея больше не вижу себя (ура), но камера не выключается (зеленый свет остается включенным). Только обновление страницы сбрасывает все (что нормально).

Я надеялся, что наблюдая за изменениями в$location.path() сделал бы трюк:

        link: function(scope, elm, attrs, ctrl) {
            ...
            var path = $location.path();
            scope.$watch(function() {
                return $location.path();
            }, function(value) {
                if (value && value !== path) {
                    $log.info('Location changed, switching off camera');
                    webRTCAdapter.detachMediaStream(elm[0]);
                }
            }, true);
        }

detachMediaStream (Chrome):

    webRTCAdapter.detachMediaStream = function(element) {
        console.log("Detaching media stream");
        element.pause();
        element.src = '';
        element.parentNode.removeChild(element);
    };

Html:


detachMediaStream выполняется (я вижу необходимые журналы вconsole.log), но камера не выключается.

Есть идеи, как это решить? Должен ли я как-то разгрузить элемент?

Ответы на вопрос(2)

Ваш ответ на вопрос