| | |
| | | height: 100%; |
| | | object-fit: fill; |
| | | } |
| | | #loadingMessage { |
| | | position: absolute; |
| | | top: 50%; |
| | | left: 50%; |
| | | transform: translate(-50%, -50%); |
| | | font-size: 24px; |
| | | color: white; |
| | | background-color: rgba(0, 0, 0, 0.7); |
| | | padding: 10px 20px; |
| | | border-radius: 5px; |
| | | display: none; |
| | | } |
| | | </style> |
| | | </head> |
| | | <body> |
| | |
| | | <div class="container" id="gridContainer"> |
| | | <!-- 网格项目将由 JavaScript 动态生成 --> |
| | | </div> |
| | | <div id="loadingMessage">正在取流</div> |
| | | <div class="container2"> |
| | | <div class="button-container"> |
| | | <button class="toggle-button" onclick="changeGrid(1, 1)">1x1</button> |
| | |
| | | const videoContainer = document.createElement('div'); |
| | | videoContainer.className = 'video-container'; |
| | | const video = document.createElement('video'); |
| | | video.id="video"+i; |
| | | video.id = "video" + i; |
| | | video.controls = true; |
| | | video.autoplay = true; |
| | | video.muted = true; |
| | | video.loop= true; |
| | | |
| | | videoContainer.appendChild(video); |
| | | gridItem.appendChild(videoContainer); |
| | | gridContainer.appendChild(gridItem); |
| | | |
| | | video.addEventListener('loadedmetadata', function () { |
| | | adjustGridItemSize(gridItem, gridItem.videoWidth, gridItem.videoHeight); |
| | | }); |
| | | video.addEventListener("click", function() { |
| | | loadingMessage.style.display = "block"; |
| | | video.play().then(function() { |
| | | loadingMessage.style.display = "none"; |
| | | }).catch(function(error) { |
| | | console.error("Error playing the video:", error); |
| | | loadingMessage.style.display = "none"; |
| | | }); |
| | | }); |
| | | console.log(video.id) |
| | | } |
| | |
| | | var chanMap = new Map(); |
| | | window.onload = function () { |
| | | changeGrid(2, 2); |
| | | chanMap.set("video1", "http://127.0.0.1:8889/245/"); |
| | | chanMap.set("video2", "http://127.0.0.1:8889/164/"); |
| | | chanMap.set("video3", "http://127.0.0.1:8889/164/"); |
| | | chanMap.set("video4", "http://127.0.0.1:8889/165/"); |
| | | chanMap.set("video1", "http://127.0.0.1:8889/164/"); |
| | | chanMap.set("video2", "http://127.0.0.1:8889/165/"); |
| | | chanMap.set("video3", "http://127.0.0.1:8889/245/"); |
| | | chanMap.set("video4", "http://127.0.0.1:8889/164/"); |
| | | chanMap.set("video5", "http://127.0.0.1:8889/165/"); |
| | | chanMap.set("video6", "http://127.0.0.1:8889/245/"); |
| | | chanMap.set("video7", "http://127.0.0.1:8889/164/"); |
| | | chanMap.set("video8", "http://127.0.0.1:8889/165/"); |
| | | chanMap.set("video9", "http://127.0.0.1:8889/245/"); |
| | | console.log(chanMap); |
| | | } |
| | | const linkToIceServers = (links) => ( |
| | |
| | | } |
| | | |
| | | let videoMap = new Map(); |
| | | $(document).on('click', 'video', function() { |
| | | $(document).on('click', 'video', function () { |
| | | let ID = this.id;//获取当前点击事件的元素 |
| | | console.log(ID); |
| | | console.log(videoMap); |
| | |
| | | client.stop(id); |
| | | videoMap.delete(id); |
| | | } |
| | | function closeAllVideo(){ |
| | | videoMap.forEach((val,key) => { |
| | | console.log(val,key); |
| | | |
| | | function closeAllVideo() { |
| | | videoMap.forEach((val, key) => { |
| | | console.log(val, key); |
| | | val.stop(key); |
| | | videoMap.delete(key); |
| | | }) |