Git Product home page Git Product logo

binaural-meet's People

Contributors

ec-k avatar endenis avatar hasevr avatar selegans2 avatar virgiliabeatrice avatar wfy1998 avatar zlguo1996 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

binaural-meet's Issues

Text chat and notification

Text chat or timeline is preferable to review the history of the venue and notifications.

Text chat and history of events such as join, leave... will be useful. Also, need a function to call people back to Binaural Meet, ie notification is needed. Notifications also need to be recorded to refer them later.

Use XMPP chat will be ideal.

Add a portal zone

A object that would allow you to go to a different meeting room would be useful for very large gatherings to split off into smaller meetings. This could be just an image that has a URL. It could point to another binaural meeting, a zoom meeting, a document, etc.

Firefox and Safari support

The sound output has problem in Firefox (in monaural mode) and Safari(in both mode). Others seems OK.

Content upload to the room are not saved across sessions

I noticed that recently we no longer save content I uploaded to a room from a previous session. I remember that before if I use the same room name it will reload the content from the previous session. Is this the new intended behavior? How long do we keep files on the content server?

UI inconsistency

Participants has a button with vertical three dots for more settings. However footer has small (v) button for the same purpose.
Maybe use the vertical three dots for both will be good solution.

UI settings

UI for basic functions

  • Choosing speaker/headphone, microphone and video camera
  • List of participants

Move dependency of lib-jitsi-meet

Tasks

  • Move dependency of lib-jitsi-meet from git submodule to npm package.json file.
  • Create another repository for @types/lib-jitsi-meet, and use it in npm package.json file.

Motivation

Use npm link is a bit complex. If move all dependencies into package.json, one command yarn install is enough to init the whole development enviroment.

RemoteTracks are not added after long time.

After almost one hour test, some of the participants could not get updates of remote tracks. When this problem occur, remote tracks are not added. So, some the participant can not hear the voice of see the video of the updated remote participant.
Remote tracks added when RTCPeerConnection.onaddstream or onaddtrack called, but they were not called.
After reload by browser (F5), this was fixed.

Issue in configuring

I am getting this error in the latest source
"TypeScript error in D:/Work/binaural-meet/src/components/leftBar/StatusDialog.tsx(96,56):
Property 'connectionQuality' does not exist on type 'JitsiConference'. TS2339"

Can you help me what could be the reason and how to resolve this.

Emote / Gesture

Currently gesture like clapping or emote like happy is hard to show via the avatar. Some users ask to use them.
Before the implementation, a detailed analysis of the demand and the UI is needed.

Remote video mute does not change avatar

When a remote use mute it's video, the avatar for user does not back to image avatar.
This bug included when replace MediaTrack to JitsiTrack.

When a remote track muted. An event is emitted from track. Also track.track.muted property is changed.
However they are not handled by components or middleware.
I can't get a good idea to solve. I'll be able to solve it by adding an event handler, adding flags on store and observing them. However it will be very ugly.

@zlguo1996 Can you help ?

Image/video share

Objective

Share images/videos by URL.
Upload and hosting should be not in our host but use other services.

Todos

The implementation contains following parts:

  1. Add store for storing urls and their properties.
  2. Add UI for adding and showing share contents.
  3. Add API to sync with remote participants.

1 - Store

Add an store (SharedContents) for storing all urls and properties (SharedContent).

  • SharedContents: a map about SharedContent, the key is unique id.
  • SharedContent: stores url, position, size / scale, author...
    In local participant store, add a property: shared.
  • shared: a set of unique id of SharedContent authored by this participant.
  • When the participant leave conference, do something (?) with shared content.

2 - UI

  • In Map - ShareLayer, add code to show shared content from store. Some shared content should be edittable (position, size / scale) by user.
  • Add a dialog to accept url, and add the it to store.

3 - Sync with remote

  • API observe and alter store, communicate with remote participants.

Multiple screen support

Motivation

Make use of multiple screen would help a lot in demonstrating the information of our web app.

Proposal

Enabling multiple tabs for showing different aspect of contents for single user in a specific conference. What's more, those tabs could be used cross devices, which enables users to make use of their pads and smart phone for online conference.

Example

In Jitsi-party, we could use another screen to show the videos pinged by user. Then user could use master tab to controll the map, and slave screen to show the video contents (like screen share and speaker's video).

Approach

For the upper example, we could use WebRTC protocal to realize it. Given a conference name and user id, slave tab would tries to establish WebRTC connection with master tab. To verify the identitiy of slave tab, user would have to enter the verity code shown on master tab.
After establishment of connection, user could choose to ping several videos in master tab. Those video stream would be forwarded to slave tab from master tab using worker. Note that audio would not be forwarded, but volume could be controlled by slave tab through WebRTC connection.

Share web content

I'd like to share web content in an iFrame so that we can embed web content. That will allow others to extend the features, e.g. an event calendar.

It would also be nice to have this object interact in some way with the avatars, for example to track when an avatar has visited an object like in a cookie.

Rendering Problem of Local Participant

In the dev environment, the local participant could not be rendered correctly, even though the store has been set.

Default props were passed into the rendering process and will be hung up.

Getting the name of the room from the URL

In Jitsi, the last name in the path URL is taken as the room name. Also any room name you enter into the dialog box is added to the URL to make it easy to copy the URL of the room.

e.g.
http://acme.com/foo/bar
"bar" is taken as the name of the room

In Binaural, it will take "foo/bar" and convert it to "foo_bar". Is there a reason room names are handled differently in Binaural?

Issue getting values

I am getting issue in reading the Observer object values.
As per the current script I have defined an object that contains the image and its description to RoomInfo class and update the value using connection class with "setRoomProp()". It update the value of the assign object. But when try to read the value of "roomProps" with "get("paramObjname") it given the previous default value but in the exact props it has the updated value. Can you let me know how to get the exact value or let me know if I am doing it wrong here.
I have attached the image of the correct output not not able to read the values which are in "data_" param. ("roomDetails" and its "value_"
Pls suggest.
image

Offering a demonstration video

Hi, @hasevr,

I saw your Post in the Jitsi Community a few months ago and am impressed by the progress you made!

I had almost the same idea, but because I just started being a developer, I did not start realizing that. However, I created a short promotion video, that explains that idea. Maybe, you want to use it for your project. You can watch it here.

I used the following sources / tools:

  • Inkscape for the graphics
  • Synfig Studio for the animation
  • Free version of Davinci Resolve for video editing
  • Music from freemusicarchive.org (not shure, if I referenced it properly)
  • Voice Over from fiverr.com with full broadcast rights

P.S. If you need the source files (voice over, graphics, animation data), you can get them too.

Echo using speaker

Describe the bug
The echo cancellation not works with speaker.

To Reproduce
Steps to reproduce the behavior:

  1. Two participants (A and B) connect to jitsi-party
  2. B use speaker rather than headphones.
  3. A speak.
  4. A could hear echo of himself from B.

Video stream of remote participants created by jitsi-meet not rendered when only 2 participants in conference

Description

Video created by jitsi-meet is not rendered in dev server.

How to recreate this problem

Note: the following screenshots are all on tab2

  1. Accses to jitsi-meet tab1.
  2. Open dev server tab2 (Note: the order of 1 and 2 could not be reversed, or the video would correctly be shown). The result would like the following (remote video is not displayed):
    image
  3. Open another dev website tab3, the video should be shown:
    image
    (When there are three participants in the conference, the order of enter does not matter. Video could always be shown)

Map would be dragged when resize shared content

Both the map translate event and the shared content resize event are triggered. The stopPropogation call inside resize event would not stop the execution of map translate event. It turns out that translate event is executed before resize event.

Speaker indicator

Motivation

Currently, the only way of knowing who is speaking is judge from video and audio content. But that is not easy enough for users to identify who are speaking to them. Thus, other hints would be needed.

Use message instead of presence

Currently perticipant proporties are used for positions and contents. But frequent update is not efficient.
It seems better to use sendMessage() api of JitsiConference.

UI or option to control attenuation by distance

Currently , the hearing area is too small. Attenuation by distance will be needed to be changed by users.
Before control, setting must be changed. GET value option will be enough for the moment.

Find out if an avatar is inside an image object

We're extending the image object in BM to have properties that effect the auditory effect of an avatar that is inside the bounds of the image. For example, the image is a conference table, and everyone at the table (i.e. inside the bounds of the image) can hear each other with equal volume, but not others that are not at the table (i.e. outside the bounds of the image).

To this end, we would like a method at the MapObject level that can return the MapObject that is immediately beneath an avatar.
e.g. avatar.getObjBeneath()

This method needs to be aware of resized and layered images.

Add Tutorial for New User

Currently, our demo site doesn't have a tutorial for users.
It's necessary to add a simple tutorial to introduce gestures of dragging and rotating.

UI Presentation of Shared Contents

Currently, the orientation of shared content will be shared globally.
When a user is trying to change his/her orientation, the local orientation of shared content will be also changed relatively.
This behavior might cause some communication difficulties with the orientation of shared content.

Considered a "poster presentation" situation, a presenter is always expected to face his/her audiences.
Keeping the orientation of shared content globally will cause whether presenter or audiences have a reversed view of shared content.
It is necessary to use a better UI presentation design of shared content to reduce those communication difficulties.

Here is a draft of the new UI design that might be useful.
SharedContents

Using an abstract icon to represent shared content in the map view.
The actual content will be shown in a floating frame, which could be pinned and dragged by the user.
Those actual contents will always keep the same orientation that is easy to read for users.

This idea is just a draft concept that needs to be discussed.
Looking forward to a further discussion.

Distinguish host, collaborators, and visitors

Is there a way to distinguish between the host (the person who started the meeting) and the rest of the people in the meeting? We are implementing simple roles (host, collaborators, visitors) in our system, but want to know if it already exists.

A Meeting Space that can stream audio

A Meeting Space that can stream audio would be great to create background music for social gatherings. A use case it to create a cocktail bar where there is music playing from one side of the room (e.g. from the stage), but you can move away from the music so that you can talk.

background of MainScreen

I want to show background image under the MainScreen (desktop sharing).
Because video will not always full screen and showing background helps to understand where the user is in the map.

Participant sometimes not quit when tab is closed

Describe the bug
Sometimes, participant not quit when tab is closed.

To Reproduce
Steps to reproduce the behavior:

  1. Go to https://zlguo1996.github.io/jitsi-party/ with Chrome of desktop.
  2. Go to https://zlguo1996.github.io/jitsi-party/ with Chrome of iphone.
  3. Now we can see two participants in both devices.
  4. Close tab of iphone.
  5. Two participants still exist in desktop tab and last for a while.

Expected behavior
In desktop, we should see another participant leave immediately when the tab of iphone is closed.

Rotation of Configuration Dialog Icon

Describe the bug
When you rotate your icon, the icon of the configuration icon is also rotated.

Expected behavior
The orientation of the configuration icon should be kept as constant.

Screenshots
If applicable, add screenshots to help explain your problem.
BugOnRotation

Desktop (please complete the following information):

  • OS: Win10
  • Browser: Chrome

Video stream status issue

I am trying to handle the video stream of users based on some activity. This is the issue I am getting while doing so

  • When a remote user starts its stream then I receive the mediastream from "tracks.avatarStream"
  • But sometimes its returns "undefined" and also "showVideo" as "false" even though the remote user is still in stream process. And after few seconds its gets the mediastream again and so on.

Why this is happening? Is there any restriction on the server side?
Or
Suggest a way out so that I can track whether the user is in streaming mode so that If the user stream return undefined in the middle of streaming process then I am show some message based in it. Like if user closed its video and no streaming then "Stream off" or if user is streaming and getting mediastream data as undefined then "Reconnecting" something like that.

Video preview and presenter's video <- Auto toggle video stream

I am trying to auto toggle the video stream based on the user clicks on video Icon. Currently when a user clicks on the video icon from the main menu then that user's video start streaming on its Icon. But what I am trying to achieve is,

  • When user clicks on video icon then its video start streaming on a singular video control on the canvas screen and close all the remote users video stream and toggle off their video icon and they start viewing my video Stream. In the same way if any remote user who is viewing my stream and if they click on their video icon then my stream stops and toggle off my video icon and start their video stream and rest users start viewing that user's stream instead of mine. That means at a time only one user can share the stream and rest streams should be off.

OR

  • When you press the VIDEO button on the main menu, it will turn red, the camera will turn on, and will broadcast your video (singular video control shared among users).
    If another person press the VIDEO button, their broadcast will replace yours, but your VIDEO button and the camera will be continue to be ON. A message will be displayed below the video feed "TAP TO BROADCAST".
    If you short click on the video feed, the video broadcast will switch to yours. Hide the message "TAP TO BROADCAST".
    If you press on the VIDEO button, the button will turn OFF. Turn off the camera. If your video it currently showing, it will switch to the last person who was shown. If no one else is broadcasting, the video will turn off.

I tried to do so but it throws error of "video stream can not swapped".

Pls suggest a way out how to implement this using your framework.

Chrome not play audio occasionally

In storybook, there are two pages: 1. Audio - Stereo, 2. Store -Participants.
First, go to 2 and add a remote participant. Then go to 1, and bind audio.
Sometimes in chrome the audio is not played.

Remote video does not has meta data: width & height

Todos

Need add MediaTrackSettings for remote video track:

  • width
  • height
  • aspectRatio

Both dummy connection and camera & screen capture video should contain those data.

Verify

The following error message would shown if width & height is not provided.
image

Why need those data

The data is used to set parent div border to make the video avatar round.

Avatar rendering during rotation

Is your feature request related to a problem? Please describe.
The current avatar's orientation will keep a same value during rotation.

Describe the solution you'd like
It's better to render the avatar as the desired orientation.

Describe alternatives you've considered
Showing a rotated name instead of video rendering might be an alternative solution.

Audio meeting space is not working as expected

PastedGraphic-2

I have 2 audio meeting spaces A and B. Currently, avatars in A can hear those in B, and vice versa. This is not what I expect.

  • 2 different audio meeting spaces should not be able to hear each other
  • all avatars in the same audio space should be able to hear each other at the same volume (ignoring proximity)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.