가끔 WEBRTC를 사용하다보면, 사파리 웹 브라우저에서 다음과 같은 에러를 뜨는 모습을 볼 수 있다.
RTCPeerConnection.addStream() is not defined
위 문제가 발생하는 이유는 간단하다.
사파리 브라우저에서는 addStream() 이라는 메소드가 구현되어있지 않기 때문이다.
WEB RTC는 현재도 발전중이고 변화되는 기술 중 하나이다.
그렇다보니 정확한 표준이 잡혀있지 않다. 해결책은 총 2가지가 존재한다.
<script src="https://webrtc.github.io/adapter/adapter-latest.js"></script>
작성하고자 하는 코드에 위의 내용을 넣는다. Adapter.js는 웹브라우저와 WEBRTC객체에 필요한 기능들을 정의해놓은 library이다.
options.stream.getTracks().forEach(track => peerConnection.addTrack(track, options.stream));
pc.addStream(localStream); 코드를 위와 같이 변경 한다.
그러면 코드가 돌아갈 것이다.