[WebRtc] RTCPeerConnection.addStream is not defined 관련 문제 해결 방법

600g (Kim Dong Geun)·2020년 4월 25일
1

가끔 WEBRTC를 사용하다보면, 사파리 웹 브라우저에서 다음과 같은 에러를 뜨는 모습을 볼 수 있다.

RTCPeerConnection.addStream() is not defined

위 문제가 발생하는 이유는 간단하다.

사파리 브라우저에서는 addStream() 이라는 메소드가 구현되어있지 않기 때문이다.
WEB RTC는 현재도 발전중이고 변화되는 기술 중 하나이다.

그렇다보니 정확한 표준이 잡혀있지 않다. 해결책은 총 2가지가 존재한다.

1. Adapter.js

<script src="https://webrtc.github.io/adapter/adapter-latest.js"></script>

작성하고자 하는 코드에 위의 내용을 넣는다. Adapter.js는 웹브라우저와 WEBRTC객체에 필요한 기능들을 정의해놓은 library이다.

2. 모든 웹브라우저에서 지원하는 함수 이용

options.stream.getTracks().forEach(track => peerConnection.addTrack(track, options.stream));

pc.addStream(localStream); 코드를 위와 같이 변경 한다.
그러면 코드가 돌아갈 것이다.

  • 개인적인 의견 : 브라우저마다 지원되는 함수가 다르다는 것 너무 까다롭다 ㅠㅠ
profile
수동적인 과신과 행운이 아닌, 능동적인 노력과 치열함

0개의 댓글