Skip to content
This repository has been archived by the owner on Sep 13, 2023. It is now read-only.

Replace PeerJs by Jitsi Low Level #50

Open
wants to merge 28 commits into
base: develop
Choose a base branch
from
Open

Replace PeerJs by Jitsi Low Level #50

wants to merge 28 commits into from

Conversation

alimtunc
Copy link

@alimtunc alimtunc commented Jun 27, 2023

Re-open of #45 :

Tasks :

  • Get a local video and audio track from low level
  • Get remotes video and audio track from low level
  • Link local tracks to fit with actual workflow
  • Link remote tracks to fit with actual workflow
  • Add screensharing
  • Fix screenSharing not working 100% time
  • Fix multiple users on same calls
  • Link medias controls
  • Add user name
  • Use user devices settings by default
  • Update device dynamically
  • Launch animation only on start, not when video is loaded
  • Meet is not launched when device permission aren't granted
  • Local avatar style is broken
  • Fix disconnection fail when going to fast
  • Setup full screen feature
  • Add analytics
  • Remove dead code related to peerJs
  • Fix one&one call launched in conference zone
  • Connect to the Jitsi provider specified in the settings
  • Add loader when connection is initialized
  • Hardware caméra led is already active, even if it's disabled
  • Check why p2p isn't disabled, even if we disable it on config
  • Lock conf when user is following
  • Update settings.json on production

Thinking :

Useful links :

@alimtunc alimtunc force-pushed the low-level branch 6 times, most recently from a42fc55 to 7245340 Compare June 28, 2023 16:12
@alimtunc alimtunc force-pushed the low-level branch 12 times, most recently from 6dfbb0d to 32e3d18 Compare July 3, 2023 14:07
@alimtunc alimtunc changed the title Low level Replace peerJs by jitsi low leve Jul 3, 2023
@alimtunc alimtunc changed the title Replace peerJs by jitsi low leve Replace PeerJs by Jitsi Low Level Jul 3, 2023
@alimtunc alimtunc requested review from ramnes and xsyann July 3, 2023 14:55
Copy link
Member

@xsyann xsyann left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Huge work 🤯💪

core/modules/meet/client/meet-low-level.js Outdated Show resolved Hide resolved
core/modules/meet/client/meet-low-level.js Outdated Show resolved Hide resolved
core/modules/meet/client/meet-low-level.js Outdated Show resolved Hide resolved
core/modules/meet/client/tracks/utils.js Outdated Show resolved Hide resolved
@alimtunc alimtunc force-pushed the low-level branch 3 times, most recently from ca7b203 to da7cdba Compare July 4, 2023 14:07
core/client/user-manager.js Show resolved Hide resolved
core/modules/meet/client/meet-low-level.js Outdated Show resolved Hide resolved
core/modules/meet/client/meet-low-level.js Outdated Show resolved Hide resolved
core/modules/meet/client/meet-low-level.js Outdated Show resolved Hide resolved
Comment on lines 268 to 289
if (propertyValue) {
await meetJs.createLocalTracks({ devices: ['desktop'] }).then((tracks) => {
const screenNode = document.querySelector('#video-screen-me')
const screenTrack = tracks[0]

screenTrack.attach(screenNode)
this.room.addTrack(screenTrack)

localTracks.push(screenTrack)
this.localTracks.set(localTracks)
})
} else {
let filteredLocalTracks = localTracks.filter((track) => {
if (track.getType() === 'video' && track.getVideoType() === 'desktop') {
track.dispose()
return false
} else {
return true
}
})

this.localTracks.set(filteredLocalTracks)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

maybe this logic should be in updateTrack as well?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hum, why? Update track does a different thing. This logic is for the shareScreen props, wich doesn't need to use updateTrack, since it's just for audio/video to mute or unmute it without removing the track.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I just don't understand why shareScreen is handled differently and in a different place than shareAudio or shareVideo

Copy link
Author

@alimtunc alimtunc Jul 5, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Because the share screen track is independant track, it will be created/deleted when user want. The audio and video track are created at the initialization of the connection. When ever user toggle share audio/video, it will be muted. But when it's share screen CTA, it will be created a this moment.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why the different behaviors? Why don't we create the video track only when the user wants to share its video?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually, I just followed the doc and never thinked about that, but yes, I think we can do that.

core/modules/meet/client/meet-low-level.js Outdated Show resolved Hide resolved
core/modules/meet/server/meet.js Show resolved Hide resolved
core/client/helpers.js Outdated Show resolved Hide resolved
core/modules/meet/client/meet-low-level.js Outdated Show resolved Hide resolved
core/modules/meet/client/meet-low-level.js Outdated Show resolved Hide resolved
@alimtunc alimtunc force-pushed the low-level branch 2 times, most recently from c59b043 to 3c2357d Compare July 5, 2023 13:01
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants