diff --git a/public/studio/Studio.js b/public/studio/Studio.js index 9beddae..5b26105 100644 --- a/public/studio/Studio.js +++ b/public/studio/Studio.js @@ -143,7 +143,9 @@ export default class Studio { bar.remove(); if (ok) { this._watchIncoming(peer); - this._view.refresh(); + // Kabul eden tarafta Eşler kolonuna yönlendir. + this._view.popTo(1); + this._pushPeersColumn(); this._setStatus('online', `${peer.socketId.slice(-8)} kabul edildi`); } else { this._setStatus('error', 'Eşleşme kurulamadı'); @@ -386,7 +388,9 @@ export default class Studio { if (peer) { this._ensureRTC(peer); - peer.rtc.addStream(dev.label || dev.deviceId.slice(-6), stream); + const label = dev.label || dev.deviceId.slice(-6); + if (peer.rtc._streams?.has(label)) peer.rtc.removeStream(label); + peer.rtc.addStream(label, stream); this._view.popTo(4); this._pushStreamsColumn(peer); } else { @@ -475,6 +479,8 @@ export default class Studio { this._setStatus('error', e.message); return; } + // Aynı label zaten varsa önce durdur (kullanıcı ikinci kez tıkladı). + if (peer.rtc._streams?.has(type)) peer.rtc.removeStream(type); peer.rtc.addStream(type, stream); this._setStatus('online', `${type} → ${peer.socketId.slice(-8)}`); this._view.popTo(3);