μλ
νμΈμ,
sipjs 0.15.11μμ sjipjs 0.16.1λ‘ λ§μ΄κ·Έλ μ΄μ
νλ €κ³ ν λ λ€μκ³Ό κ°μ λ¬Έμ κ° λ°μνμ΅λλ€. λ΄κ° μ¬κΈ°μμ λκ°λ₯Ό λμΉκ³ μμ΅λκΉ?
λ²κ·Έ μ€λͺ
'SessionDescriptionHandler' μ νμ 'peerConnection' μμ±μ΄ μμ΅λλ€.
λ‘κ·Έ
error TS2339: Property 'peerConnection' does not exist on type 'SessionDescriptionHandler'.
μ¬ννκΈ° μν΄
λμμ μ¬ννλ λ¨κ³:
// Assumes you have a media element on the DOM
const mediaElement = document.getElementById('mediaElement');
const remoteStream = new MediaStream();
function setupRemoteMedia(session: Session) {
session.sessionDescriptionHandler.peerConnection.getReceivers().forEach((receiver) => {
if (receiver.track) {
remoteStream.addTrack(receiver.track);
}
});
mediaElement.srcObject = remoteStream;
mediaElement.play();
}
μμλλ νλ
μμ± 'peerConnection'μ 'SessionDescriptionHandler' μ νμ μμ΄μΌ ν©λλ€.
κ΄μ°°λ νλ
μ»΄νμΌνλ©΄ μ€λ₯κ° λ°μν©λλ€.
'SessionDescriptionHandler' μ νμ 'peerConnection' μμ±μ΄ μμ΅λλ€.
νκ²½μ 보
λ μ ννκ²λ peerConnectionμ΄ platform/web/session-description-handler/session-description-handler.ts νμΌμ μ‘΄μ¬ν©λλ€.
public peerConnection!: RTCPeerConnection;
κ·Έλ¬λ api/session-description-handler.tsμλ μμ΅λλ€.
μ΄κ²μ΄ μ μ νμΌμ μΌλΆκ° μλ μ΄μ μ λκΉ?
λλ κ°μ λ¬Έμ λ₯Ό λ§λ¬κ³ κ·Έκ²μ ν΄κ²°νκΈ° μν΄ '_sip.js/lib/platform/web_'μμ SessionDescriptionHandler λ₯Ό κ°μ Έμμ μ§κΈκΉμ§ μ μλν©λλ€.
_'sip.js/lib/platform/web'_ μ λͺ¨λ νλͺ©μ Web
λ€μμ€νμ΄μ€λ‘ λ΄λ³΄λ΄μ§λ―λ‘ import { Web } from "sip.js"
λ€μ Web.SessionDescriptionHandler
λ‘ μ°Έμ‘°ν μλ μμ΅λλ€.
peerConnection
μ νμ SessionDescriptionHandler
μΈν°νμ΄μ€μ μ‘΄μ¬νμ§ μμ΅λλ€. μμ΄λμ΄λ SIP.jsκ° μλλ―λ‘ νΌμ΄ μ°κ²°μ΄ μλ νκ²½μ λν΄ SDHλ₯Ό μμ±ν μ μλ€λ κ²μ
λλ€. μΉ κ΅¬νμ μ¬μ©νκ³ μλ κ²½μ° Web.SessionDescriptionHandler
μμ μ νμ κ°μ Έμ€κ³ μ¬μ©ν©λλ€. μ΄κ²μ μλμ μ
λλ€.
λκ΅°κ°κ° λνμ΄ λ¬Έμ κ° μμ΄μΌνλ€λ©΄. κ·Έκ²μ΄ λλ₯Ό μν΄ μΌν λ°©λ²μ λλ€.
import '{ SessionDescriptionHandler } from 'sip.js/lib/platform/web'
case SessionState.Established:
let sessionDescriptionHandler: SessionDescriptionHandler = inviter.sessionDescriptionHandler as SessionDescriptionHandler;
setupRemoteMedia(sessionDescriptionHandler);
break;
function setupRemoteMedia(session: SessionDescriptionHandler) {
let receiversList: any = session.peerConnection.getReceivers();
receiversList.forEach((receiver: RTCRtpReceiver) => {
if (receiver.track) {
remoteStream.addTrack(receiver.track);
}
});
mediaElement.srcObject = remoteStream;
mediaElement.play();
}
κ°μ μ¬ν λ° μ견μ κΈ°μκ² λ°μλ€μ λλ€.
κ°μ₯ μ μ©ν λκΈ
λλ κ°μ λ¬Έμ λ₯Ό λ§λ¬κ³ κ·Έκ²μ ν΄κ²°νκΈ° μν΄ '_sip.js/lib/platform/web_'μμ SessionDescriptionHandler λ₯Ό κ°μ Έμμ μ§κΈκΉμ§ μ μλν©λλ€.