client.html 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. <html>
  2. <head>
  3. <meta charset="UTF-8">
  4. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  5. </head>
  6. <body>
  7. <div>
  8. <button id="start">开始录制</button>
  9. <button id="stop">停止录制</button>
  10. </div>
  11. <div class="container">
  12. <div class="stop-watch">
  13. <div id="timeDisplay" style="font-size:100px">00:00:00:00</div>
  14. <div class="buttons">
  15. <button id="startBtn" class="time-btn">Start</button>
  16. <button id="resetBtn" class="time-btn">Reset</button>
  17. </div>
  18. </div>
  19. </div>
  20. <div>
  21. <video autoplay controls id="stream" width="1900" height="852" object-fit="fill"></video>
  22. </div>
  23. <script>
  24. let constraints = {
  25. audio: false,
  26. video: true
  27. };
  28. let startBtn = document.getElementById('start');
  29. let stopBtn = document.getElementById('stop');
  30. let video = document.getElementById('stream');
  31. startBtn.onclick = function(){
  32. navigator.getUserMedia(constraints, function(stream){
  33. video.srcObject = stream;
  34. }, function(err){
  35. console.log(err);
  36. })
  37. }
  38. stopBtn.onclick = function(){
  39. video.pause();
  40. }
  41. </script>
  42. <script>
  43. const timeDisplay = document.querySelector("#timeDisplay");
  44. const startTimeBtn = document.querySelector("#startBtn");
  45. const pauseBtn = document.querySelector("#pauseBtn");
  46. const resetBtn = document.querySelector("#resetBtn");
  47. let startTime = 0;
  48. let elapsedTime = 0;
  49. let paused = true;
  50. let intervalId;
  51. let hours = 0;
  52. let minutes = 0;
  53. let seconds = 0;
  54. let miliseconds = 0;
  55. startTimeBtn.addEventListener("click", () => {
  56. if(paused){
  57. paused = false;
  58. startTime = Date.now() - elapsedTime;
  59. intervalId = setInterval(updateTime, 75);
  60. }
  61. })
  62. resetBtn.addEventListener("click", () => {
  63. paused = true;
  64. startTime = 0;
  65. elapsedTime = 0;
  66. clearInterval(intervalId);
  67. hours = 0;
  68. minutes = 0;
  69. seconds = 0;
  70. miliseconds = 0;
  71. timeDisplay.textContent = "00:00:00:00";
  72. })
  73. function updateTime(){
  74. elapsedTime = Date.now() - startTime;
  75. miliseconds = Math.floor(elapsedTime % 1000);
  76. seconds = Math.floor(elapsedTime / 1000 % 60);
  77. minutes = Math.floor(elapsedTime / 1000 / 60 % 60);
  78. hours = Math.floor(elapsedTime / 1000 / 60 / 60 % 60);
  79. miliseconds = formatMili(miliseconds);
  80. seconds = formatTime(seconds);
  81. minutes = formatTime(minutes);
  82. hours = formatTime(hours);
  83. timeDisplay.textContent = `${hours}:${minutes}:${seconds}:${miliseconds}`;
  84. function formatTime(unit){
  85. return (("0") + unit).length > 2 ? unit : "0" + unit;
  86. }
  87. function formatMili(unit){
  88. unit = String(unit);
  89. if(unit.length == 3){
  90. return unit.slice(0, 2);
  91. }
  92. else if(unit.length == 2){
  93. return unit;
  94. }
  95. else if(unit.length == 1){
  96. return "0" + unit;
  97. }
  98. }
  99. }
  100. </script>
  101. </body>
  102. </html>