zebra-report: stream toggle on own row — DJ self-monitor
DJ can preview the ~2s delayed Ogg/Opus stream of their own mic to confirm what listeners hear. Closed headphones recommended; open speakers + music mode = feedback (title attr warns).
This commit is contained in:
parent
9b55fd96ce
commit
e14c92e037
1 changed files with 17 additions and 7 deletions
|
|
@ -4013,17 +4013,27 @@ function renderRoom(){
|
|||
/* per-speaker "stream" toggle: anyone can flip another speaker's
|
||||
* audio from WebRTC subscribe → HTTP Ogg/Opus tap. Higher latency,
|
||||
* cleaner playback under loss. Not a mod action — every listener
|
||||
* gets to pick their own path per speaker. */
|
||||
if (canSpeak(m.role) && m.uuid !== myUUID && m.pubkey){
|
||||
* gets to pick their own path per speaker. Also rendered on your
|
||||
* own row as a DJ self-monitor: confirms what listeners are hearing
|
||||
* (~2s delayed). Safe with closed headphones; loud feedback with
|
||||
* open speakers + music-mode mic — title attr warns. */
|
||||
if (canSpeak(m.role) && m.pubkey){
|
||||
let mPubHex = '';
|
||||
try { mPubHex = hex(unb64(m.pubkey)); } catch(_){}
|
||||
if (mPubHex){
|
||||
const isSelf = (m.uuid === myUUID);
|
||||
const sb = document.createElement('button'); sb.className = 'small';
|
||||
const on = streamMode.has(mPubHex);
|
||||
sb.textContent = on ? '◉ stream' : '○ stream';
|
||||
sb.title = on
|
||||
? 'streaming — click to switch back to live (low-latency WebRTC)'
|
||||
: 'switch to HTTP Ogg/Opus stream (~2s delay, glitch-free for DJ sets)';
|
||||
if (isSelf){
|
||||
sb.title = on
|
||||
? 'monitoring your own DJ stream — click to stop (feedback risk on open speakers!)'
|
||||
: 'preview what listeners hear of YOUR mic (~2s delay) — headphones recommended';
|
||||
} else {
|
||||
sb.title = on
|
||||
? 'streaming — click to switch back to live (low-latency WebRTC)'
|
||||
: 'switch to HTTP Ogg/Opus stream (~2s delay, glitch-free for DJ sets)';
|
||||
}
|
||||
if (on) sb.classList.add('invert');
|
||||
sb.onclick = () => toggleStreamFor(m.uuid, mPubHex);
|
||||
acts.appendChild(sb);
|
||||
|
|
@ -4539,8 +4549,8 @@ logLine('', 'ready — pick a handle, type a rendezvous code, enter the space');
|
|||
|
||||
<footer style="margin:2.2rem auto 0;font-size:0.65rem;color:#999;line-height:1.7;word-break:break-all;font-family:monospace">
|
||||
<span id="pi-seal" style="color:#777;cursor:default;user-select:none" title="">page integrity</span> · built <span class="stamp-date">2026-06-03</span><br>
|
||||
md5 <span class="stamp-md5">beebb8a6a5d5675bfcf12f83230fe283</span><br>
|
||||
sha256 <span class="stamp-sha">898175e9ffac08ae9e56390a594701728bd94ec8b0d36942589df921efcfa716</span><br>
|
||||
md5 <span class="stamp-md5">19c10cee08169563958d1edbb2c8ecae</span><br>
|
||||
sha256 <span class="stamp-sha">0774caba0cbd90e06e69bb75823edd2c2a58139b969bdd4a6f287ead5df4cec0</span><br>
|
||||
<span style="color:#bbb">hashes are of this page with these two fields zeroed — to verify, blank them and re-hash</span><br>
|
||||
<span style="color:#bbb">one self-contained file — <strong>save a copy</strong> and verify against these hashes; point at your own servers with ?signal= and ?turncred=, or <a href="host-your-own.html" style="color:#999">host your own community</a></span>
|
||||
</footer>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue