@@ -12,31 +12,10 @@ const mediaHandler = new MediaHandler();
1212const peerHandler = new PeerHandler ( { send } ) ;
1313const isSafari = DetectRTC . browser . isSafari ;
1414const isMobile = DetectRTC . isMobileDevice ;
15- const mediaConstraints = {
16- audio : true ,
17- video : {
18- width : {
19- ideal : 1280 ,
20- min : 640 ,
21- max : 1920 ,
22- } ,
23- height : {
24- ideal : 720 ,
25- min : 360 ,
26- max : 1080 ,
27- } ,
28- frameRate : {
29- ideal : 25 ,
30- } ,
31- // Select the front/user facing camera or the rear/environment facing camera if available (on Phone)
32- facingMode : 'user' ,
33- } ,
34- } ;
3515
3616let roomId ;
3717let userId ;
3818let remoteUserId ;
39- let isOffer ;
4019
4120// DOM
4221const $body = document . body ;
@@ -45,9 +24,25 @@ const $waitWrap = document.querySelector('#wait-wrap');
4524const $videoWrap = document . querySelector ( '#file-wrap' ) ;
4625const $uniqueToken = document . querySelector ( '#unique-token' ) ;
4726
48- async function getUserMedia ( ) {
49- const stream = await peerHandler . getUserMedia ( mediaConstraints , isOffer ) ;
50- onLocalStream ( stream ) ;
27+ const bitrateDiv = document . querySelector ( '#bitrate' ) ;
28+ const downloadAnchor = document . querySelector ( '#download' ) ;
29+ const sendProgress = document . querySelector ( '#sendProgress' ) ;
30+ const receiveProgress = document . querySelector ( '#receiveProgress' ) ;
31+ const statusMessage = document . querySelector ( '#status' ) ;
32+
33+ const $fileInput = document . querySelector ( '#file' ) ;
34+ const $btnSend = document . querySelector ( '#btn-send' ) ;
35+
36+ $fileInput . addEventListener ( 'change' , handleFileInputChange , false ) ;
37+
38+ function handleFileInputChange ( ) {
39+ const file = $fileInput . files [ 0 ] ;
40+
41+ if ( ! file ) {
42+ console . log ( 'No file chosen' ) ;
43+ } else {
44+ $btnSend . disabled = false ;
45+ }
5146}
5247
5348/**
@@ -56,33 +51,39 @@ async function getUserMedia() {
5651function onDetectUser ( ) {
5752 console . log ( 'onDetectUser' ) ;
5853
59- $waitWrap . innerHTML = `
60- <div class="room-info">
61- <p>당신을 기다리고 있어요. 참여 하실래요?</p>
62- <button id="btn-join">Join</button>
63- </div>
64- ` ;
65-
66- document . querySelector ( '#btn-join' ) . addEventListener ( 'click' , ( e ) => {
67- e . target . disabled = true ;
68- isOffer = true ;
69- getUserMedia ( ) ;
70- } ) ;
71-
72- $createWrap . classList . add ( 'slideup' ) ;
54+ // TODO: 연결 UI 처리
55+
56+ // $waitWrap.innerHTML = `
57+ // <div class="room-info">
58+ // <p>당신을 기다리고 있어요. 참여 하실래요?</p>
59+ // <button id="btn-join">Join</button>
60+ // </div>
61+ // `;
62+
63+ // document.querySelector('#btn-join').addEventListener('click', (e) => {
64+ // e.target.disabled = true;
65+ // isOffer = true;
66+ // getUserMedia();
67+ // });
68+ // $createWrap.classList.add('slideup');
7369}
7470
7571/**
7672 * 참석자 핸들링
7773 * @param roomId
7874 * @param userList
7975 */
80- function onJoin ( roomId , userList ) {
81- console . log ( 'onJoin' , roomId , userList ) ;
76+ function onJoin ( roomId , { userId : joinedUserId , participants } ) {
77+ console . log ( 'onJoin' , roomId , userId , participants ) ;
8278
83- if ( Object . size ( userList ) > 1 ) {
79+ if ( Object . size ( participants ) >= 2 ) {
8480 onDetectUser ( ) ;
8581 }
82+
83+ if ( userId !== joinedUserId ) {
84+ console . log ( '상대방 들어옴 :>> ' , joinedUserId ) ;
85+ peerHandler . startRtcConnection ( ) ;
86+ }
8687}
8788
8889/**
@@ -219,19 +220,21 @@ function onRemoteStream(stream) {
219220 * DOM 이벤트 바인딩
220221 */
221222function bindDomEvent ( ) {
222- document . querySelector ( '#btn-start' ) . addEventListener ( 'click' , getUserMedia ) ;
223- document . querySelector ( '#btn-camera' ) ?. addEventListener ( 'click' , ( e ) => {
224- const $this = e . target ;
225- $this . classList . toggle ( 'active' ) ;
226- mediaHandler [ $this . className === 'active' ? 'pauseVideo' : 'resumeVideo' ] ( ) ;
227- } ) ;
228- document . querySelector ( '#btn-mic' ) ?. addEventListener ( 'click' , ( e ) => {
229- const $this = e . target ;
230- $this . classList . toggle ( 'active' ) ;
231- mediaHandler [ $this . className === 'active' ? 'muteAudio' : 'unmuteAudio' ] ( ) ;
223+ // document.querySelector('#btn-start').addEventListener('click', getUserMedia);
224+ // document.querySelector('#btn-camera')?.addEventListener('click', (e) => {
225+ // const $this = e.target;
226+ // $this.classList.toggle('active');
227+ // mediaHandler[$this.className === 'active' ? 'pauseVideo' : 'resumeVideo']();
228+ // });
229+ // document.querySelector('#btn-mic')?.addEventListener('click', (e) => {
230+ // const $this = e.target;
231+ // $this.classList.toggle('active');
232+ // mediaHandler[$this.className === 'active' ? 'muteAudio' : 'unmuteAudio']();
233+ // });
234+
235+ $btnSend . addEventListener ( 'click' , ( ) => {
236+ peerHandler . sendData ( $fileInput . files [ 0 ] ) ;
232237 } ) ;
233-
234- document . querySelector ( '#btn-change-resolution' ) ?. addEventListener ( 'click' , peerHandler . changeResolution ) ;
235238}
236239
237240/**
0 commit comments