Skip to content

Commit 8bb09dc

Browse files
authored
1 parent 3b2429b commit 8bb09dc

File tree

1 file changed

+25
-26
lines changed

1 file changed

+25
-26
lines changed

openai-webrtc.html

+25-26
Original file line numberDiff line numberDiff line change
@@ -21,20 +21,6 @@
2121
margin: 0 auto;
2222
}
2323

24-
.messages {
25-
width: 100%;
26-
height: 300px;
27-
background: white;
28-
border: 1px solid #ddd;
29-
border-radius: 4px;
30-
padding: 10px;
31-
margin: 20px 0;
32-
font-size: 16px;
33-
font-family: monospace;
34-
resize: vertical;
35-
overflow-y: scroll;
36-
}
37-
3824
.audio-indicator {
3925
display: inline-block;
4026
width: 20px;
@@ -60,13 +46,22 @@
6046
margin: 20px 0;
6147
}
6248

49+
.form-group {
50+
margin-bottom: 15px;
51+
}
52+
53+
label {
54+
display: block;
55+
margin-bottom: 5px;
56+
font-weight: bold;
57+
}
58+
6359
input {
6460
width: 100%;
6561
padding: 8px;
6662
font-size: 16px;
6763
border: 1px solid #ddd;
6864
border-radius: 4px;
69-
margin-bottom: 10px;
7065
}
7166

7267
button {
@@ -107,11 +102,12 @@ <h1>
107102
<span id="audioIndicator" class="audio-indicator"></span>
108103
OpenAI WebRTC Audio Session
109104
</h1>
110-
111-
<div class="messages" id="messages"></div>
112105

113106
<div class="controls">
114-
<input type="password" id="tokenInput" placeholder="Enter your API token">
107+
<div class="form-group">
108+
<label for="tokenInput">OpenAI API Token</label>
109+
<input type="password" id="tokenInput">
110+
</div>
115111
<button id="startButton">Start Session</button>
116112
</div>
117113

@@ -136,7 +132,7 @@ <h1>
136132
pc.ondatachannel = event => {
137133
const channel = event.channel
138134
channel.onmessage = msg => {
139-
appendMessage(decoder.decode(msg.data))
135+
console.log(decoder.decode(msg.data))
140136
}
141137
}
142138

@@ -167,20 +163,20 @@ <h1>
167163

168164
const startButton = document.getElementById('startButton')
169165
const tokenInput = document.getElementById('tokenInput')
170-
const messages = document.getElementById('messages')
171166
const status = document.getElementById('status')
172167
const audioIndicator = document.getElementById('audioIndicator')
173168

174169
let peerConnection = null
175170
let audioContext = null
176171
let audioStream = null
177172

178-
function appendMessage(text) {
179-
const div = document.createElement('div')
180-
div.textContent = text
181-
messages.appendChild(div)
182-
messages.scrollTop = messages.scrollHeight
183-
}
173+
// Load saved API key on page load
174+
document.addEventListener('DOMContentLoaded', () => {
175+
const savedToken = localStorage.getItem('openai_api_key')
176+
if (savedToken) {
177+
tokenInput.value = savedToken
178+
}
179+
})
184180

185181
// Audio visualization
186182
function setupAudioVisualization(stream) {
@@ -209,6 +205,9 @@ <h1>
209205

210206
async function startSession() {
211207
try {
208+
// Save API key to localStorage
209+
localStorage.setItem('openai_api_key', tokenInput.value)
210+
212211
status.className = 'status'
213212
status.textContent = 'Requesting microphone access...'
214213

0 commit comments

Comments
 (0)