Native video: name + mute labels on the native video tiles
The native video covers the web tile's name/mute badges, so redraw those natively. syncVideoTiles now also carries each tile's name + muted state; each tile VideoView gets a bottom-left name label (with shadow for legibility) and a bottom-right mic-slash badge shown when that participant is muted. Kept above the video renderer via bringSubviewToFront. Web sends name/muted from meetNames/meetMuted (and ME.name/!meetMic for __local). Front/back camera switch + screen-share rendering still deferred. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -5376,10 +5376,11 @@ function bzNativeSyncTiles(){
|
||||
document.querySelectorAll('#meetGrid .meet-tile').forEach(el=>{
|
||||
const id=el.id ? el.id.replace('meet-tile-','') : ''; if(!id || id==='__waiting') return;
|
||||
const r=el.getBoundingClientRect(); if(r.width<2||r.height<2) return;
|
||||
let uid, local=false;
|
||||
if(id==='__local'){ uid=(ME&&ME.id)||''; local=true; } else { uid=meetPeerUids.get(id)||''; }
|
||||
let uid, local=false, name='', muted=false;
|
||||
if(id==='__local'){ uid=(ME&&ME.id)||''; local=true; name=(ME&&ME.name)||'You'; muted=!meetMic; }
|
||||
else { uid=meetPeerUids.get(id)||''; name=meetNames.get(id)||'Guest'; muted=!!meetMuted.get(id); }
|
||||
if(!uid) return;
|
||||
tiles.push({ uid, local, x:r.left, y:r.top, w:r.width, h:r.height });
|
||||
tiles.push({ uid, local, name, muted, x:r.left, y:r.top, w:r.width, h:r.height });
|
||||
});
|
||||
try{ NC.syncVideoTiles({ tiles }); }catch(_){}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user