照片后关闭相机

时间:2016-02-26 22:26:41

标签: javascript html5 meteor

我正在对一个项目进行逆向工程,并遇到了一些令人困惑的问题。该项目在Meteor,我喜欢,但似乎没有遵循Meteors惯例。

这本质上是一个javascript文件,允许用户使用笔记本电脑设备相机拍照。但是,拍摄照片后,相机不会关闭。

在网上尝试了一些建议后,我提出了一个问题:如何关闭相机?

感谢您的帮助!

    Template.newSelfie.rendered = function(){

      // Grab elements, create settings, etc.
      var canvas = document.getElementById("canvas"),
        context = canvas.getContext("2d"),
        video = document.getElementById("video"),
        videoObj = { "video": true },
        errBack = function(error) {
          console.log("Video capture error: ", error.code);
        };

      // Put video listeners into place
      if(navigator.getUserMedia) { // Standard
        navigator.getUserMedia(videoObj, function(stream) {
          video.src = stream;
          video.play();
        }, errBack);
      } else if(navigator.webkitGetUserMedia) { // WebKit-prefixed
        navigator.webkitGetUserMedia(videoObj, function(stream){
          video.src = window.webkitURL.createObjectURL(stream);
          video.play();
        }, errBack);
      }
      else if(navigator.mozGetUserMedia) { // Firefox-prefixed
        navigator.mozGetUserMedia(videoObj, function(stream){
          video.src = window.URL.createObjectURL(stream);
          video.play();
        }, errBack);
      }

      // Converts canvas to an image
      function convertCanvasToImage(canvas) {
        var image = new Image();
        image.src = canvas.toDataURL("image/png");
        return image.src;
      }

      $('#take-selfie').click(function() {
        context.drawImage(video, 0, 0, 450, 350);
        var selfieImg = convertCanvasToImage(canvas);

        Posts.insert({
          ownerId: Meteor.userId(),
          userWallId: Meteor.userId(), 
          content: '<img src="'+selfieImg+'">',
          postedOn: new Date()
        }, function(err, res) {
          console.log(err || res);
        });

        Selfies.insert({
          ownerId: Meteor.userId(),
          image: selfieImg,
          postedOn: moment().format('MM/DD/YYYY hh:mm a'),
          createdAt: moment().format('YYYY-MM-DD')
        }, function(err, res) {
            console.log(err || res);
            if(err){
              console.log(err);
            } else {
              Router.go('profileSelfies');
            }
        });
      });       
    };

0 个答案:

没有答案