Sip.js: рд╕рдВрдкрддреНрддрд┐ 'peerConnection' рдкреНрд░рдХрд╛рд░ 'SessionDescriptionHandler' рдкрд░ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 28 рдордИ 2020  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: onsip/SIP.js

рдирдорд╕реНрддреЗ,
рдореБрдЭреЗ рд╕рд┐рдкрдЬ 0.15.11 рд╕реЗ sjipjs 0.16.1 рдкрд░ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╕рдордп рдирд┐рдореНрди рд╕рдорд╕реНрдпрд╛ рдЖрдИред рдХреНрдпрд╛ рдореБрдЭрд╕реЗ рдХреЛрдИ рдЪреВрдХ рд╣реЛ рд░рд╣реА рд╣реИ?

рдмрдЧ рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдВ
рд╕рдВрдкрддреНрддрд┐ 'peerConnection' рдкреНрд░рдХрд╛рд░ 'SessionDescriptionHandler' рдкрд░ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ

рд▓реЙрдЧреНрд╕

error TS2339: Property 'peerConnection' does not exist on type 'SessionDescriptionHandler'.

рдкреНрд░рдЬрдирди рдХрд░рдирд╛
рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрджрдо:

  1. рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдПрдЬреЗрдВрдЯ рдмрдирд╛рдПрдВ рдФрд░ рдЖрдиреЗ рд╡рд╛рд▓реА рдХреЙрд▓ рдХреЛ рд╕рдВрднрд╛рд▓реЗрдВ
  2. рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣рд╛рдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдХрд┐рд╕реА рдореАрдбрд┐рдпрд╛ рдХреЛ рдЕрдЯреИрдЪ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ рдЕрдЯреИрдЪ-рдореАрдбрд┐рдпрд╛
    рдЗрд╕ рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
// 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' рдкрд░ рдореМрдЬреВрдж рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП

рдордирд╛рдпрд╛ рд╡реНрдпрд╡рд╣рд╛рд░
рд╕рдВрдХрд▓рди рддреНрд░реБрдЯрд┐ рдлреЗрдВрдХрддрд╛ рд╣реИ:
рд╕рдВрдкрддреНрддрд┐ 'peerConnection' рдкреНрд░рдХрд╛рд░ 'SessionDescriptionHandler' рдкрд░ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ

рдкрд░реНрдпрд╛рд╡рд░рдг рдХреА рдЬрд╛рдирдХрд╛рд░реА

  • рд╕рд┐рдкрдЬреЗрдПрд╕ 0.16.1

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдореИрдВ рдПрдХ рд╣реА рдореБрджреНрджреЗ рдХреЛ рдкреВрд░рд╛ рдХрд░рддрд╛ рд╣реВрдВ, рдФрд░ рдореИрдВ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП '_sip.js/lib/platform/web_' рд╕реЗ рд╕рддреНрд░ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрд╢рди рд╣реИрдВрдбрд▓рд░ рдЖрдпрд╛рдд рдХрд░рддрд╛

рд╕рднреА 5 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдкреАрдпрд░рдХрдиреЗрдХреНрд╢рди рдлрд╝рд╛рдЗрд▓ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо/рд╡реЗрдм/рд╕рддреНрд░-рд╡рд┐рд╡рд░рдг-рд╣реИрдВрдбрд▓рд░/рд╕рддреНрд░-рд╡рд┐рд╡рд░рдг- рд╣реИрдВрдбрд▓рд░.рдЯреАрдПрд╕ рдкрд░ рдореМрдЬреВрдж рд╣реИ

  public peerConnection!: RTCPeerConnection;

рд▓реЗрдХрд┐рди api/session-description-handler.ts . рдкрд░ рдирд╣реАрдВ

рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдпрд╣ рдкрд░рд┐рднрд╛рд╖рд╛ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдирд╣реАрдВ рд╣реИ?

рдореИрдВ рдПрдХ рд╣реА рдореБрджреНрджреЗ рдХреЛ рдкреВрд░рд╛ рдХрд░рддрд╛ рд╣реВрдВ, рдФрд░ рдореИрдВ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП '_sip.js/lib/platform/web_' рд╕реЗ рд╕рддреНрд░ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрд╢рди рд╣реИрдВрдбрд▓рд░ рдЖрдпрд╛рдд рдХрд░рддрд╛

_'sip.js/lib/platform/web'_ рдореЗрдВ рд╕рдм рдХреБрдЫ Web рдирд╛рдо рд╕реНрдерд╛рди рдореЗрдВ рдирд┐рд░реНрдпрд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдк import { Web } from "sip.js" рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ Web.SessionDescriptionHandler рд░реВрдк рдореЗрдВ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдкреНрд░рдХрд╛рд░ peerConnection SessionDescriptionHandler рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкрд░ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рд╡рд┐рдЪрд╛рд░ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рдПрдХ рдРрд╕реЗ рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рд▓рд┐рдП SDH рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ SIP.js рдирд╣реАрдВ рд╣реИ рдФрд░ рдЗрд╕рд▓рд┐рдП рдЙрд╕рдХрд╛ рдХреЛрдИ рдкреАрдпрд░ рдХрдиреЗрдХреНрд╢рди рдирд╣реАрдВ рд╣реИред 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();
}

рд╕реБрдзрд╛рд░ рдФрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЛ рд╕рд╣рд░реНрд╖ рд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

raphaelhovsepyan picture raphaelhovsepyan  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

i-kitchen picture i-kitchen  ┬╖  8рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

josephfrazier picture josephfrazier  ┬╖  26рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

diegoteixeir4 picture diegoteixeir4  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

seanbright picture seanbright  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ