Guest User

Untitled

a guest
Apr 23rd, 2018
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.61 KB | None | 0 0
  1. <!DOCTYPE html>
  2.  
  3. <head>
  4. <script>
  5. var recordedChunks = [];
  6. var constraints = {
  7. audio: true,
  8. video: true
  9. };
  10. var mediaRecorder = null;
  11.  
  12. navigator.mediaDevices.getUserMedia(constraints).then(onMediaSuccess, function(errorCallback) {
  13. console.log(errorCallback);
  14. });
  15.  
  16. function onMediaSuccess(stream) {
  17. try {
  18. window.stream.getVideoTracks()[0].stop();
  19. } catch (err) {}
  20. window.stream = stream;
  21. var gumVideo = document.querySelector('video#local');
  22. gumVideo.src = window.URL.createObjectURL(stream);
  23. }
  24.  
  25. function start() {
  26. var options = {
  27. mimeType: 'video/webm;codecs=H264'
  28. };
  29. mediaRecorder = new MediaRecorder(window.stream, options);
  30. mediaRecorder.ondataavailable = onDataAvailable;
  31. mediaRecorder.start(1000);
  32. }
  33.  
  34. function stop() {
  35. mediaRecorder.stop();
  36. }
  37.  
  38. function onDataAvailable(event) {
  39. if (event.data.size > 0) {  
  40. recordedChunks.push(event.data);  
  41. }
  42. }
  43.  
  44. function download() { 
  45. var blob = new Blob(recordedChunks, {  
  46. type: 'video/webm' 
  47. }); 
  48. var url = URL.createObjectURL(blob); 
  49. var a = document.createElement('a'); 
  50. document.body.appendChild(a); 
  51. a.style = 'display: none'; 
  52. a.href = url; 
  53. a.download = 'test.webm'; 
  54. a.click(); 
  55. window.URL.revokeObjectURL(url);
  56. }
  57. </script>
  58. </head>
  59.  
  60. <body>
  61. <button onclick="start()">record</button>
  62. <button onclick="stop()">stop</button>
  63. <button onclick="download()">download</button>
  64. <br>
  65. <video id="local" autoplay/>
  66. </body>
  67.  
  68. </html>
Add Comment
Please, Sign In to add comment