100mslive / 100ms-web Goto Github PK
View Code? Open in Web Editor NEWA conferencing and streaming UI built with 100ms SDK.
Home Page: https://examples-videoconferencing.app.100ms.live/preview/tmz-qdi-cyp
License: MIT License
A conferencing and streaming UI built with 100ms SDK.
Home Page: https://examples-videoconferencing.app.100ms.live/preview/tmz-qdi-cyp
License: MIT License
Installing dependencies with npm requires the --legacy-peer-deps
flag to be passed, which is not ideal. This is the error message without the flag:
npm/node versions for reference (using active LTS):
arjun@Arjuns-MacBook-Pro ~/r/100ms-web (main) [9]> node -v
v16.4.2
arjun@Arjuns-MacBook-Pro ~/r/100ms-web (main)> npm -v
7.18.1
Can Whiteboard be applied to Vue frameworks?
the user needs to enter their name everytime in order to join the room, this is tedious and the information can be remembered for next time to auto populate
Request the addition of Breakout Rooms in our Video Conf App, which will enable meeting organizers to divide participants into smaller groups for various purposes like workshop sessions, networking, or group discussions. Breakout Rooms would significantly improve user experience and cater to the growing needs of educational institutions and businesses.
User-Friendly Interface and Configuration:
To make the Breakout Rooms experience seamless, a user-friendly interface should be developed, enabling organizers to configure, monitor, and manage the rooms with ease. This feature should also allow participants to join and move between rooms smoothly.
Flexible Room Setup:
The organizer should have the ability to set up rooms with varying capacities, customize each room's name, and restrict access to specific groups, such as inviting only specific participants. This feature will provide additional control and make each session more targeted.
Random and Manual Room Assignment
Organizers should be able to divide participants into Breakout Rooms either manually or automatically, following customizable rules such as equal group sizes or entirely randomized assignment.
Time-Limited Sessions:
Enable organizers to set a countdown timer for each Breakout Room session. This feature will ensure timely completion of group activities and prompt all participants to rejoin the main meeting when the time's up.
Recording Capability:
Each Breakout Room should have the option for recording sessions, which could be accessed later by participants and organizers for future reference or performance evaluations.
Moderation Tools:
Provide organizers with moderation tools to facilitate Breakout Room management, such as muting/unmuting participants, sending announcements/broadcast messages to all rooms, and overseeing group activities.
Private Chat and Shared Documents:
Enable participants to collaborate effectively by providing features like private chat within the Breakout Rooms and the ability to share documents, whiteboards, or screens with other members.
By implementing these features, the 100ms web App will provide users with an enhanced experience, ideal for collaboration in various fields. Breakout Rooms will meet the diverse requirements of users, helping to facilitate effective communication and teamwork.
Describe the bug
If you call hmsActions.changeName with the same name that the peer already has, the SDK errors.
To Reproduce
Video demo: https://www.loom.com/share/12d905e00cf24f3cafb066c4e83968a8
Expected behavior
The sdk should noop under the hood and not error. Or, throw a more helpful/clear, error message.
Steps to reproduce the behavior:
After closing a dialog the user should be able to continue to click buttons.
Desktop:
Describe the bug
Websocket connection being lost
Project
react project sample adapted to next.js
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Should connect to the room.
Desktop (please complete the following information):
Additional context
Started today
Aditional error message in the console as well:
[HMSPerformanceTiming] join-room-654940e77978e20a415f6dc0
DOMException: Failed to execute 'measure' on 'Performance': The mark 'join-room-654940e77978e20a415f6dc0' does not exist.
rk 'join-room-654940e77978e20a415f6dc0' does not exist.
at c.log (webpack-internal:///./node_modules/@100mslive/hms-video/dist/index.js:84:4120)
at c.timeEnd (webpack-internal:///./node_modules/@100mslive/hms-video/dist/index.js:84:3690)
at Pr.eval (webpack-internal:///./node_modules/@100mslive/hms-video/dist/index.js:135:157726)
at Generator.next ()
at s (webpack-internal:///./node_modules/@100mslive/hms-video/dist/index.js:60:794)
Context:
Solution was adapted to run on next.js and was running accordingly until yesterday.
it should be possible to fullscreen a screenshare
We have it for video playlist already and the button looks like this -
The way to do this would be changing the VideoTile here - https://github.com/100mslive/hms-video-react/blob/main/src/components/VideoTile/VideoTile.tsx to add a small fullscreen icon which acts similar to video playlist screenshare button. Here is the function which is used by the video playlist component which can be traced back to learn more - https://github.com/100mslive/hms-video-react/blob/c90fb6a62e7532a6e7dabe006b015c8e056c0f7e/src/utils/index.ts#L643
Describe the bug
While I follow the steps mentioned in the Readme.md to set up the application locally for enhancement, found following issues:
In the actual application the code const envPolicyConfig = JSON.parse(process.env.REACT_APP_POLICY_CONFIG || "{}");
. was present as const envPolicyConfig = JSON.parse(process.env.REACT_APP_POLICY_CONFIG || false);
which caused an error while parsing, so I was able to see only a blank screen.
A closing curly brace was missing in the example of REACT_APP_POLICY_CONFIG REACT_APP_POLICY_CONFIG = "{"trainer":{"center": ["student"],"sidepane":["trainer"]}"
To Reproduce
Steps to reproduce the behavior:
add go to docs option in center menu which takes to docs.100ms.live
Describe the bug
Google pixel 6a
Samsung Flip 4
Samsung Note10+
In this device, the volume button doesn't directly adjust the call sound. Instead, it controls a progress bar that visually increases or decreases, but it doesn't affect the call volume. The call volume is adjusted independently through the media volume controls.
export const VideoPlayer = React.forwardRef((props: React.DetailedHTMLProps<React.VideoHTMLAttributes<HTMLVideoElement>, HTMLVideoElement>, ref: any) => (
<video ref = {ref} {...props} />
))
SDK Version:
"@100mslive/hms-noise-suppression": "^0.9.19",
"@100mslive/react-sdk": "^0.8.19",
if you have the permission to end room, this is how the UI currently looks when clicked on leave room
It's much easier to click on end room by mistake. Two things are required -
100ms-web/src/components/conference.jsx
Lines 54 to 61 in a86135a
When joining a room, the referenced effect hook can disconnect users with a slow connection before they finish the room enter process.
This leaves the users with the FullPageProgress component inside the conference view infinitely showing its loader due to the following lines:
100ms-web/src/components/conference.jsx
Lines 63 to 65 in a86135a
To reproduce:
ServerErrors: urls missing
Wrapper vendors~main.chunk.js:15262
HMSException HMSException.ts:16
ServerErrors ErrorFactory.ts:210
_callee$ index.ts:81
Babel 10
_callee12$ index.ts:254
Babel 8
_callee26$ index.ts:462
Babel 8
_callee19$ index.ts:646
Babel 8
_callee26$ HMSSDKActions.ts:445
Babel 8
stream Room.js:21
React 14
unstable_runWithPriority scheduler.development.js:468
React 15
js index.js:8
js main.chunk.js:1495
Webpack 7
index.js:1
Here is how my params is :
await hmsActions.startRTMPOrRecording({
meetingUrl: "https://t***.app.100ms.live/meeting/***/host",
rtmpUrls: [
"rtmp://a.rtmp.youtube.com/live2/******",
"rtmp://b.rtmp.youtube.com/live2/******?backup=1"
],
record: false
})
I received this email addressed to "Brett jitsi/docker-jitsi-meet`:
Reaching out to see if 100ms can help with in-app video conferencing/streaming,
100ms is a SaaS platform that allows devs to add video conferencing & streaming to your Web, Android and iOS apps. We are used by Circle, Byjus, Kutumb, Circle and dozens of enterprises because:
- Native SDK -- Easy to use conferencing, recording, streaming, chat, interactivity in a single SDK
- Works everywhere - Built by ex-Disney team to ensure it works seamlessly for across conditions
- Quick integration - Go live within days using pre-built apps, roles and components
- No maintenance - Our team is in charge of scaling, security, upgrades and reliability
If you see it relevant, can we schedule a quick 20 mins intro meeting?
Thanks in advance,
Jay Kanakiya,
Account Executive, 100ms
Please don't use GitHub stars from Jitsi repositories to target spam.
Describe the bug
I made a video call app in react and when someone joining the call from ios device.first time voice not coming if ios user connect headshet and disconnect it then sound coming in the speaker..
To Reproduce
Expected behavior
i want if user join the meeting sound should come to speaker at first
Smartphone (please complete the following information):
headerView
has the above components. Right now, all three are independent. Take up lot of space.
When recording, Audio only screenshare, Audioplaylist are on, they overlap with active speaker. They also don't look good in mobile. They need to be combined into one dropdown menu like UI.
Note: share some screenshots of the ideas before getting into implementation.
Is your feature request related to a problem? Please describe.
Roles currently allow individuals to control remote audio and video settings. However, they do not allow a role to control a remove user's screenshare. It looks like the demo application uses a custom event workaround as seen here:
Describe the solution you'd like
It would be great if this was a top-level feature just like muting a remote peers audio/video
Describe alternatives you've considered
I could use the custom event method.
Describe the bug
Hi, I'm currently using @100mslive/react-sdk
in my next js app and everything is working great on desktop and mobile browsers, but i'm now trying to create a mobile app using https://capacitorjs.com/. I've got everything working in the mobile app on both iOS and Android except for the 100ms integration.
When I start live streaming, I am being prompted for camera/video permissions, which I'm granting, but in the mobile app I only see this grey screen with a play button image:
For Android, these are the permissions and features I'm setting in my AndroidManifest.xml
file:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES"/>โ
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-feature android:name="android.hardware.audio.output" android:required="true" />
<uses-feature android:name="android.hardware.camera.any" android:required="true" />
<uses-feature android:name="android.hardware.camera" android:required="true" />
<uses-feature android:name="android.hardware.camera.autofocus" android:required="true" />
<uses-feature android:name="android.hardware.camera.front" android:required="false" />
<uses-feature android:name="android.hardware.camera.level.full" android:required="false" />
<uses-feature android:name="android.hardware.camera.flash" android:required="false" />
Also, if i use the developer console i see this error, even though i have granted permission:
I realize you have Android and iOS SDKs of 100ms, but as a non-mobile developer, I'm not entirely sure how I would instead use those SDKs on mobile and whether or not they will work with the existing @100mslive/react-sdk
library I'm using on the client.
Any information would be greatly appreciated, thanks! ๐๐ผ
To Reproduce
Steps to reproduce the behavior:
@100mslive/react-sdk
in a react or next js appcapacitor
to generate a mobile appExpected behavior
The video stream should start properly and use the mobile device's camera
Smartphone (please complete the following information):
Additional context
I'm not sure if this is the correct repo to create this issue in, so please let me know if there is a better place to put it
we've disabled the chat button in mobile browsers currently because it breaks the UI and is not really usable on phone due to the width being small. We can increase the width on mweb conditionally, so user can participate in chat from phone, ipads etc. too.
We can make it an overlay on top of other things so it can have proper width in mobile as well.
Describe the bug
So i cloned this template, populated the example.env with my data, installed the dependencies via yarn and then started it. I saw the 404 page, as expected. SO i knew the server was up. Next I tried the localhost:3000/meeting/<room_id>/ URL, which should work, since the room exists and the role exists in the room. The token endpoint and room id are fine, i cross-checked them with the data in 100ms. But instead of a preview screen, i get the error message "ROOM DOES NOT EXIST"
To Reproduce
Steps to reproduce the behavior:
yarn start
. go to localhost:3000/<room_id>/, and then see the errorExpected behavior
I expected it to show me the preview screen, ask for device permissions and then let me join the room.
Screenshots
https://imgur.com/8K8WP9K.png
Desktop (please complete the following information):
Describe the bug
The @100mslive/roomkit-react
package ins't properly shipping with the HMSPrebuilt component or it isn't being picked up by Typescript
To Reproduce
Steps to reproduce the behavior:
Expected behavior
The component should be picked up when imported
Screenshots
Setup & Dependencies:
Additional context
I've tried restarting the TS server and reinstalling the package to no avail.
Describe the bug
On the join
method the SDK loggin this error:
{
code: 401
action: "INIT"
name: "ServerErrors"
message: "[INIT]: Server error"
description: "json: cannot unmarshal number into Go struct field Claims.user_id of type string"
isTerminal: false
timestamp: Fri Oct 29 2021 18:26:03 GMT+0530 (India Standard Time)
}
The official example code sandbox is also facing this issue: https://codesandbox.io/s/hms-js-quickstart-5rmes?from-embed
Describe the bug
Not able to join the call. It says: An error occurred while fetching the app token. Please look into logs for more details. If you think this is a mistake on our side, please create an issue or reach out over Discord.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
I was expecting to be able to join the call
Desktop (please complete the following information):
in large rooms, notifications on peer join, leave new message etc. can be bothering. It would be nice to have a configuration in the UI settings where one can select what types of notifications they want.
Task -
We could allow customization of the app title by setting an env var and default to the current logic in case it is not defined.
I can work on this myself if I have the ok.
The app is littered with deeply nested ternaries and if else statements. Both are super tough to reason about and it feels like when reading the code that new features are just being added to a never ending list of if else statements mixed with deeply nested ternaries.. I would suggest that no-nested-ternary is added to your eslint rules at the very least to stop this from continuing.
Describe the bug
Not able to join a scheduled call
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Should be able to join call
Desktop (please complete the following information):
Additional context
High Priority - Giving a bad experience to Mentors, Might effect my profile
Describe the bug
I have 3 roles for my 100ms meeting (admin, guest, and waiting room).
For public meetings, the admin has an useEffect hook that monitors HMSNotificationTypes.PEER_JOINED in the waiting room. It automatically calls actions.changeRole upon getting the notifications.
Periodically (3/10 times) waiting room users upgraded to guest users will have their audio track not changeRoles with them.
They will still appear to have an audio track on their side, but on the admin side, it will look like they are muted and have no audio track.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
The audio works as expected.
Desktop (please complete the following information):
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.