Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Webcam Picture speichern

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • #16
    Du hast nicht zufällig eine veraltete Firefox-Version (<21)? Die "behaupten" userMedia zu unterstützen, tun es aber nicht.

    Kommentar


    • #17
      Ich hab das schon mehrmals nachgesehen firefox is bei mir bei 30

      Ich poste euch mal den ganzen code und ihr könnt es bitte mal versuchen (danke)
      HTML:
      PHP-Code:
          <video id="video"></video>
          <
      canvas id="canvas"></canvas>
          <
      img src="" hidden id="photo">

          <
      script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
          <script>

              (function () {

                  var streaming = false,
                          video = document.querySelector('#video'),
                          canvas = document.querySelector('#canvas'),
                          photo = document.querySelector('#photo'),
                          startbutton = document.querySelector('#startbutton'),
                          width = 1280,
                          height = 720;

                  navigator.getMedia = ( navigator.getUserMedia ||
                          navigator.webkitGetUserMedia ||
                          navigator.mozGetUserMedia ||
                          navigator.msGetUserMedia);

                  navigator.getMedia(
                          {
                              video: true,
                              audio: false
                          },
                          function (stream) {
                              if (navigator.mozGetUserMedia) {
                                  video.mozSrcObject = stream;
                              } else {
                                  var vendorURL = window.URL || window.webkitURL;
                                  video.src = vendorURL.createObjectURL(stream);
                              }
                              video.play();
                          },
                          function (err) {
                              console.log("An error occured! " + err);
                          }
                  );

                  video.addEventListener('canplay', function (ev) {
                      if (!streaming) {
                          height = video.videoHeight / (video.videoWidth / width);
                          video.setAttribute('width', width);
                          video.setAttribute('height', height);
                          canvas.setAttribute('width', width);
                          canvas.setAttribute('height', height);
                          streaming = true;
                      }
                  }, false);

                  function takepicture() {
                      canvas.width = width;
                      canvas.height = height;
                      canvas.getContext('2d').drawImage(video, 0, 0, width, height);
                      var data = canvas.toDataURL();
                      photo.setAttribute('src', data);
                      alert(data);
                      $.ajax({
                          type: "POST",
                          url: "screenshot.php",
                          data: {
                              imgBase64: data
                          }
                      }).done(function (o) {
                          console.log('saved');
                      });
                  }

                  document.onkeydown = function (event) {
                      if (event.keyCode == 120) {
                          event.cancelBubble = true;
                          event.returnValue = false;
                          takepicture();
                          ev.preventDefault();
                      }
                      return event.returnValue;
                  }
              })();
          </script> 
      PHP:
      PHP-Code:
      <?php



      define 
      ('UPLOAD_DIR''images/');

      class 
      PacketFoto
      {

          public function 
      machFoto()
          {

              
      $bImg $_POST['imgBase64'];
              
      $bImg str_replace('data:image/png;base64,'''$bImg);
              
      $bImg str_replace(' ''+'$bImg);
              
      $sData base64_decode($bImg);
              
      $sFile UPLOAD_DIR 'paket.png';
              
      $success file_put_contents($sFile$sData);

              return 
      $success;
          }
      }

      $takePic = new PacketFoto();
      $takePic->machFoto();
      über den feldern video hab ich zwar mehr aber das ist alles nicht relevant denke ich mal. (im Chrom geht das alles ohne probleme !)

      Kommentar


      • #18
        Also, fassen wir mal zusammen, das Problem ist sicherlich in irgendeiner Form Firefoxspezifisch, das heißt ein Verweis auf Chrom mit "da geht es" ist hier nicht relevant.

        Debugge wie gesagt mal alle Variablen, die in diesen beiden Zeilen auftauchen:
        Code:
        canvas.getContext('2d').drawImage(video, 0, 0, width, height);
                        var data = canvas.toDataURL();
        [URL="http://php.net/manual/en/migration55.deprecated.php"]mysql ist veraltet[/URL] [URL="http://php-de.github.io/jumpto/mail-class/"]Mails senden: Ohne Probleme und ohne mail()[/URL]
        [PHP]echo 'PS: <b>Meine Antwort ist keine Lösung, sondern nur eine Hilfe zur Lösung.</b>';[/PHP]

        Kommentar


        • #19
          Ich weiß nicht wie ich video überprüfen soll. data ist immer leer.
          hab mich bei google nochmal umgehört und
          http://stackoverflow.com/questions/2...a-sizing-issue
          gefunden. da wird in denn kommentaren auch geschrieben das zwar die Camera geht jedoch können die auch kein Foto erstellen.
          mein Javascript wissen ist nur sehr sehr wenig und mehr als data prüfen konnte ich auch nicht.

          Also video muss ja was hergeben sonst würde meine cam garnicht gehen. canvas ist ja das feld in das von video geschrieben wird. da canvas an jeder stelle leer ist wird natürlich auch data leer sein. Das problem liegt also darin das video nicht in das feld canvas schreibt. die frage ist nur liegt das an der function drawImage()? gibt es dafür eine alternative? villeicht eine möglichkeit das bild zu holen ohne diese function zu benutzen?

          Kommentar


          • #20
            Also ich hab grade etwas rumgetestet und da ist mir aufgefallen das man denn stream rechtsklicken kann und darunter eine Option ist um ein Screenshot zu machen. Ich mein ich versuch seid wochen genau das zu tun und siehe da Firefox weiß schon wie es geht..... kann ich damit irgendwie was anfangen?irgendwie genau das im php oder javascript aufrufen?weil sobald ich das bild speichere und unter Firebug beobachte sehe ich garnichts. nichts wird in dem Moment ausgelöst. wie kann ich dann herausfinden wo ich das aufrufen kann?

            Kommentar


            • #21
              Also ich sags gerne nochmal. Die aufname ist unwichtig was wichtig ist das ich ein Screenshot brauche von der aktuellen ansicht. und das ist zurzeit nicht möglich im firefox wie es scheint. es gibt schon mehrere personen die das gleiche behaupten das das im firefox 20+ nicht möglich ist ein screenshot zu machen. naja ich hoffe das wird bald gefixxt.

              Kommentar

              Lädt...
              X