使用Node Web Kit GUI,如何关闭屏幕?

时间:2015-09-30 01:35:59

标签: javascript angularjs node.js node-webkit

我尝试使用Node Web Kits屏幕广播捕获视频图像并将其应用到画布。我使用angularjs在视频和画布之间切换。

我打开并初始化视频:

gui.Screen.init();
gui.Screen.chooseDesktopMedia(
    ["window", "screen"],
    function(streamId) {
        var vid_constraint = {
            mandatory: {
                chromeMediaSource: 'desktop',
                chromeMediaSourceId: streamId,
                maxWidth: 900,
                maxHeight: 600,
                minFrameRate: 1,
                maxFrameRate: 5
            },
            optional: []
        };
        navigator.webkitGetUserMedia({
                audio: false,
                video: vid_constraint
            },
            function(stream) {

                console.log(stream, typeof URL.createObjectURL(stream));

                video.src = URL.createObjectURL(stream);
            },
            function(error) {
                console.log('failure', error);
            });
    });

然后我通过将屏幕图像应用到临时画布然后使用ng-if切换视图来发送屏幕图像:

// first steps in the angular transition
    $scope.takePhoto = function() {
        console.log("draw")
        context.drawImage(video, 0, 0, 900, 600);
        var sendVid = canvas.toDataURL();
        $rootScope.$broadcast("send video data", {show: false, videoImage : sendVid})
        gui.Screen.stop();
    };

然后,当我尝试初始化新的GUI时,它不起作用。我收到这个错误:

  

TypeError:undefined不是函数      在新的VideoCtrl(video-capture-directive.js:20)      在Object.invoke(angular.js:4476)      在extend.instance(angular.js:9127)      at nodeLinkFn(angular.js:8239)      at delayedNodeLinkFn(angular.js:8528)      在compositeLinkFn(angular.js:7671)      at publicLinkFn(angular.js:7546)      at boundTranscludeFn(angular.js:7690)      在controllersBoundTransclude(angular.js:8307)      在Object.ngIfWatchAction [as fn](​​angular.js:23994)

为什么我不能关闭窗口并打开一个新窗口?

0 个答案:

没有答案