From 38f29e38fcc668171dc05c53d40a36b895c86102 Mon Sep 17 00:00:00 2001
From: liusuyi <1951119284@qq.com>
Date: 星期四, 10 十月 2024 13:34:28 +0800
Subject: [PATCH] init

---
 ard-work/src/main/resources/templates/preview.html |   23 ++++++++++++++++-------
 1 files changed, 16 insertions(+), 7 deletions(-)

diff --git a/ard-work/src/main/resources/templates/preview.html b/ard-work/src/main/resources/templates/preview.html
index fd773b0..003d22d 100644
--- a/ard-work/src/main/resources/templates/preview.html
+++ b/ard-work/src/main/resources/templates/preview.html
@@ -101,13 +101,19 @@
             <button class="toggle-button" onclick="changeGrid(7, 7)">7x7</button>
             <button class="toggle-button" onclick="changeGrid(8, 8)">8x8</button>
             <button class="toggle-button" onclick="changeGrid(9, 9)">9x9</button>
-            <input id="videoUrl" type="text" value="http://192.168.1.11:8889/164/" style="width: 250px"/>
+            <input id="videoUrl" type="text" value="http://192.168.1.227:8889/0d1c9f80a7b4480c8b401ba6b140b581_1/" style="width: 250px"/>
         </div>
     </div>
 </div>
 
 <script>
+    console.log(RTCRtpReceiver.getCapabilities('video').codecs)
+    console.log(RTCRtpReceiver.getCapabilities('audio').codecs)
     //whep鎿嶄綔鏂规硶
+    const restartPause = 2000;
+    const unquoteCredential = (v) => (
+        JSON.parse(`"${v}"`)
+    );
     const linkToIceServers = (links) => (
         (links !== null) ? links.split(', ').map((link) => {
             const m = link.match(/^<(.+?)>; rel="ice-server"(; username="(.*?)"; credential="(.*?)"; credential-type="password")?/i);
@@ -174,9 +180,9 @@
     }
 
     class WHEPClient {
-        constructor(wurl, videoId) {
+        constructor(whepUrl, videoId) {
             this.video = videoId;
-            this.url = new URL('whep', wurl);
+            this.wurl = new URL('whep', whepUrl);
             this.pc = null;
             this.restartTimeout = null;
             this.eTag = '';
@@ -186,7 +192,7 @@
 
         start() {
             console.log("requesting ICE servers");
-            fetch(this.url, {
+            fetch(this.wurl, {
                 method: 'OPTIONS',
             })
                 .then((res) => this.onIceServers(res))
@@ -223,7 +229,7 @@
 
             console.log("sending offer");
 
-            fetch(this.url, {
+            fetch(this.wurl, {
                 method: 'POST',
                 headers: {
                     'Content-Type': 'application/sdp',
@@ -234,7 +240,9 @@
                     if (res.status !== 201) {
                         throw new Error('bad status code');
                     }
-                    this.eTag = res.headers.get('E-Tag');
+                    // this.eTag = res.headers.get('ETag');
+                    this.eTag = res.headers.get("ETag") || res.headers.get('E-Tag');
+                    this.wurl = new URL(res.headers.get('location'),  this.wurl.origin).toString();
                     return res.text();
                 })
                 .then((sdp) => this.onRemoteAnswer(new RTCSessionDescription({
@@ -288,12 +296,13 @@
         }
 
         sendLocalCandidates(candidates) {
-            fetch(this.url, {
+            fetch(this.wurl, {
                 method: 'PATCH',
                 headers: {
                     'Content-Type': 'application/trickle-ice-sdpfrag',
                     'If-Match': this.eTag,
                 },
+
                 body: generateSdpFragment(this.offerData, candidates),
             })
                 .then((res) => {

--
Gitblit v1.9.3