Sip.js: ΠžΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ мСстный ΠΌΠΈΠΊΡ€ΠΎΡ„ΠΎΠ½

Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ Π½Π° 13 Π΄Π΅ΠΊ. 2017  Β·  11ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ  Β·  Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: onsip/SIP.js

ΠŸΡ€ΠΈΠ²Π΅Ρ‚,
Π•ΡΡ‚ΡŒ Π»ΠΈ способ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ мСстный ΠΌΠΈΠΊΡ€ΠΎΡ„ΠΎΠ½?
Session.mute (), ΠΏΠΎΡ…ΠΎΠΆΠ΅, Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚.
Π‘ ΡƒΠ²Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ,
ΠŸΡΡ‚Π°

Π‘Π°ΠΌΡ‹ΠΉ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π² вСрсии 0.15.0 это ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π²ΠΎΡ‚ Ρ‚Π°ΠΊ

const pc: any = this.session.sessionDescriptionHandler.peerConnection
    pc.getSenders().forEach((stream: any) => {
      stream.track.enabled = false
    })

ВсС 11 ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ‚Ρ€Π΅ΠΊΠΈ ΠΎΡ‚ peerConnection, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ‚Ρ€Π΅ΠΊΠΈ. Π­Ρ‚ΠΎ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ Π·Π° Ρ€Π°ΠΌΠΊΠΈ SIP.js. Π‘ΠΌ. Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° описания сСанса для получСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΠ΄Π½ΠΎΡ€Π°Π½Π³ΠΎΠ²ΠΎΠ΅ соСдинСниС.

Π― Ρ€Π΅ΡˆΠΈΠ» это Ρ‚Π°ΠΊ:

session.getLocalStreams()[0].getAudioTracks()[0].stop()

session.getLocalStreams Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΏΡ€ΡΠΌΡƒΡŽ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ с 0.8+. Π’Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΎΠ΄Π½ΠΎΡ€Π°Π½Π³ΠΎΠ²ΠΎΠ΅ соСдинСниС ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎΡ‚ΠΎΠΊΠΈ ΠΎΡ‚ ΠΎΠ΄Π½ΠΎΡ€Π°Π½Π³ΠΎΠ²ΠΎΠ³ΠΎ соСдинСния.

Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ я ΠΌΠΎΠ³Ρƒ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ?

Π’Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ‚Ρ€Π΅ΠΊΠΈ ΠΎΡ‚ peerConnection, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ‚Ρ€Π΅ΠΊΠΈ. Π­Ρ‚ΠΎ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ Π·Π° Ρ€Π°ΠΌΠΊΠΈ SIP.js. Π‘ΠΌ. Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° описания сСанса для получСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΠ΄Π½ΠΎΡ€Π°Π½Π³ΠΎΠ²ΠΎΠ΅ соСдинСниС.

я сдСлал это Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ

///mute
var pc = session.sessionDescriptionHandler.peerConnection;
pc.getLocalStreams().forEach(function (stream) {
    stream.getAudioTracks().forEach(function (track) {
        track.enabled = false;
    });
});

я сдСлал это Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ

///mute
var pc = session.sessionDescriptionHandler.peerConnection;
pc.getLocalStreams().forEach(function (stream) {
    stream.getAudioTracks().forEach(function (track) {
        track.enabled = false;
    });
});

Для Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ нашСл это сСйчас:
Chrome Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚, Ρ‡Ρ‚ΠΎ peerConnection.getLocalStreams() Π½Π΅ слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ. ВмСсто этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅:
peerConnection.getSenders() ΠΈ peerConnection.getReceivers()

Π² вСрсии 0.15.0 это ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π²ΠΎΡ‚ Ρ‚Π°ΠΊ

const pc: any = this.session.sessionDescriptionHandler.peerConnection
    pc.getSenders().forEach((stream: any) => {
      stream.track.enabled = false
    })

спасибо @koshelevvasya, Ρ‡Ρ‚ΠΎ Ρƒ мСня сработало!

ΠΈΠ·Π²ΠΈΠ½ΠΈΡ‚Π΅ ΠΎΠΏΠΎΠ·Π΄Π°Π» Π½Π° Π²Π΅Ρ‡Π΅Ρ€ΠΈΠ½ΠΊΡƒ. Вопрос: ΠΊΠ°ΠΊ ΠΌΠ½Π΅, ΠΊΠ°ΠΊ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌΡƒ ΡƒΠ·Π»Ρƒ, ΡƒΠ·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΠ΄Π½ΠΎΡ€Π°Π½Π³ΠΎΠ²Ρ‹ΠΉ ΡƒΠ·Π΅Π» ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΠ» свой ΠΌΠΈΠΊΡ€ΠΎΡ„ΠΎΠ½, Ρ‡Ρ‚ΠΎΠ±Ρ‹ я ΠΌΠΎΠ³ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ статус со своСй стороны? Π›ΡŽΠ±ΠΎΠ΅ событиС Π±ΡƒΠ΄Π΅Ρ‚ ΡΡ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° Ρ‚Ρ€Π΅ΠΊ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ / ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½, ΠΊΠ°ΠΊ ΡƒΠΊΠ°Π·Π°Π½ΠΎ Π²Ρ‹ΡˆΠ΅ @koshelevvasya ?

@ thanh-mel ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌΡƒ ΡƒΠ·Π»Ρƒ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΌΠΈΠΊΡ€ΠΎΡ„ΠΎΠ½ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½. ΠœΠΎΠΆΠ΅Ρ‚ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅?

Π›ΡŽΠ±ΠΎΠ΅ событиС Π±ΡƒΠ΄Π΅Ρ‚ ΡΡ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° Ρ‚Ρ€Π΅ΠΊ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ / ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½

По ΠΌΠΎΠ΅ΠΌΡƒ ΠΎΠΏΡ‹Ρ‚Ρƒ, Π΄Π°. ΠŸΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ это сдСлано с использованиСм JavaScript

Π‘Ρ‹Π»Π° Π»ΠΈ эта страница ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ?
0 / 5 - 0 Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ΠΈ