twilio / twilio-video.js

Twilio’s Programmable Video JavaScript SDK
https://www.twilio.com/docs/video/javascript
Other
571 stars 217 forks source link

Network Quality API for LocalParticipent #1593

Closed prabhat1221 closed 3 years ago

prabhat1221 commented 3 years ago
Video.connect(token, {
  name: 'my-room',
  audio: { name: 'microphone' },
  video: { name: 'camera' },
  networkQuality: {
    local: 1, // LocalParticipant's Network Quality verbosity [1 - 3]
    remote: 2 // RemoteParticipants' Network Quality verbosity [0 - 3]
  }
})
  printNetworkQualityStats(networkQualityLevel, networkQualityStats) {
      // Print in console the networkQualityLevel using bars
      console.log(
        {
          1: '▃',
          2: '▃▄',
          3: '▃▄▅',
          4: '▃▄▅▆',
          5: '▃▄▅▆▇'
        }[networkQualityLevel] || ''
      )

      if (networkQualityStats) {
        // Print in console the networkQualityStats, which is non-null only if Network Quality
        // verbosity is 2 (moderate) or greater
        console.log('Network Quality statistics:', networkQualityStats)

      }
    },
  participant.on(
        'networkQualityLevelChanged',
        this.printNetworkQualityStats
      )
NetworkQualityStats {level: **5**, audio: NetworkQualityAudioStats, video: NetworkQualityVideoStats}
audio: NetworkQualityAudioStats {send: 5, recv: 5, sendStats: NetworkQualitySendStats, recvStats: NetworkQualityRecvStats}
level: 5
video: NetworkQualityVideoStats
recv: 5
recvStats: NetworkQualityRecvStats {bandwidth: NetworkQualityBandwidthStats, fractionLost: NetworkQualityFractionLostStats, latency: NetworkQualityLatencyStats}
send: 5
sendStats: NetworkQualitySendStats {bandwidth: NetworkQualityBandwidthStats, fractionLost: NetworkQualityFractionLostStats, latency: NetworkQualityLatencyStats}
[[Prototype]]: NetworkQualityMediaStats
[[Prototype]]: Object

This is for Remote participants, right? So remote Participent NQL is = 5 My question is how to get LocalParticipent NQL ?

Code to reproduce the issue:

// TODO

Expected behavior:

TODO

Actual behavior:

TODO

Software versions:

makarandp0 commented 3 years ago

Hello @prabhat1221, networkQualityLevelChanged is emitted for both local and remote participants. For local participant you can use:

room.localParticipant.on('networkQualityLevelChanged', printNetworkQualityStats);

Thanks, Makarand

prabhat1221 commented 3 years ago

Thanks, its Working.