2016-01-06 16 views
1

Я знаю, что HTML5 теперь имеет getusermedia(), где вы можете получить доступ к своим камерам. Тем не менее, есть ли способ, которым я могу установить ограничение на то, как долго я хочу, чтобы запись продолжалась в течение 30 секунд, а затем сохранила ее? Или даже если есть отверстие петли, такие как имеющий счетчик или что-то ..Есть ли способ установить ограничение продолжительности видео с помощью HTML5, Javascript или PHP? Подобно snapchat и vine

<script> 
     var video = document.querySelector("#videoElement"); 
     navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia || navigator.oGetUserMedia; 
     if (navigator.getUserMedia) {  
     navigator.getUserMedia({video: true, audio: true}, handleVideo, videoError); 
     } 
     function handleVideo(stream) { 
     video.src = window.URL.createObjectURL(stream); 
     document.getElementById("videoElement").pause(); 
     } 
     function videoError(e) { 
     alert("There was an error with the video stream.\nCheck that your webcam is connected."); 
     } 
     function play() 
     { 
     var video = document.getElementById("videoElement"); 
     var music = document.getElementById("song"); 
      var button = document.getElementById("play"); 
      if (video.paused) { 
       video.play(); 
       music.play(); 
       button.textContent = "Stop Recording"; 
      } else { 
       video.pause(); 
       music.pause(); 
       button.textContent = "Continue Recording"; 
      } 
     } 
     function show() 
     { 
     document.getElementById("record").style.display="block"; 
     } 
     </script> 
+0

Стоит упомянуть, что javascript является клиентской стороной, и поэтому ВСЕ, что вы делаете с ним, можно легко обойти. Если есть ответ на ваш вопрос, я бы порекомендовал также проверку на стороне сервера. – HenryTK

ответ

0

Просто включать setInterval счетчик, который начинается, когда начало записи и отсчитывает до максимальной продолжительности, а затем останавливает запись. Что-то вроде:

var time = 0; 
this.audioTimer = setInterval(function() { 
        time += 1; 
        if (time >= maxDurationInSeconds) { 
         this.recorder.stop(); 
        } 
       }, 1000); 
+0

Или просто 'setTimeout'. – jib

+0

Хорошо, что логически имеет смысл. Я отправил свой код выше, добавлю ли я эту функцию в конце? –