I am trying to create a peer to peer meeting basing on WebRtc, I am able to see him on his camera, or watch his shared screen, but may I watch his screen and meanwhile watching him on his camera?
Try this demo: https://www.webrtc-experiment.com/demos/screen-and-video-from-single-peer.html
For offerer; it attaches two unique MediaStream objects:
Audio+Video
Screen
Remember, Firefox doesn't support this feature, yet!
Related
I'm just playing around with agora.io, WebRTC and I want to implement a "camera tile view". I hope you understand what I mean, so all the (small) cameras of the users should be displayed in a row/table one next to each other or in a list, if too many users. The active speaking user gets a border around his camera view or sth like that.
Can anybody tell me the name of this kind of view or point me to a location, where I can check some samples about this?
Best regards, Alex
The Agora SDK's provide all the API's for building your own Ui, so there is no method within the SDK for generating a tile view, you would have to do that yourself.
That being said, the Agora developer community has some open source UI Kits that serve as a good starter template for your UI that you can adjust. The Agora Web UIKit supports tile view as the default.
Vanilla JS: https://www.agora.io/en/blog/adding-video-chat-or-live-streaming-to-your-website-in-5-lines-of-code-using-the-agora-web-uikit/
React: https://agoraio-community.github.io/Web-React-UIKit/
I am trying to implement something like the camera on/off toggle that Google Meet has. I have tried getting the tracks from getUserMedia and setting enabled = true/false, it works but the camera indicator light is still on all the time. How are they able to toggle the camera and the indicator light?
To lose the camera indicator you will have to remove any reference to the stream (no just set enabled to false).
So you have to remove the track from the peer.
Thanks to Transceiver APi you can easily switch/remove track from the peer without renegotiate the ice.
I am currently trying to produce an android app that can do live broadcasting. May I know if Agora has the functionalities to access both the rear and front camera of the broadcaster at the same time? If yes, which part of the code do we need to modify (based on Open-Live-Android)?
Agora does offer a demo that directly displays the code you are looking for, but if you can get both camera frames (which some devices may not support that), you can take a look at this demo app: https://github.com/AgoraIO/Advanced-Video/tree/dev/win-screenshare/Screensharing/Agora-Screen-Sharing-Android. In this demo app, the SDK is sending both camera view and screen share view at the same time. In order to achieve that, you need to make screen share as a standalone service. Following a similar logic, you can change the screen sharing part to one of the camera view.
I've got an application in React Native to be developed in Android and iOS, in which I'd like to take the camera stream, make some processing, and render it multiple times.
Imagine an app like Instagram, in which you can add filters to the camera live and it shows the applied filters with on live previews. It would be more or less the same.
I need to get the camera stream and be able to show it on screen multiple times.
I've tried react-native-camera, but it only lets me to get one instance of the camera to be shown.
With this same library, I've tried to take pictures in intervals of the camera and to render them via <Image> container but, of course, it's a performance kill and the app ends up crashing.
How can I achieve what I'm trying to do? Do you know of any module or any approach that allows me to do so?
Thank you.
WebRtc sample
If I press call, allow/deny menu is shown in the upper screen. When I press allow, Chrome starts displaying red circle in the header which signals that microphone is active. All other sounds in others Chromes tabs are muted (for example youtube video).
When I press hang, red circle does not dissapears, youtube video in second tab is still muted. I have to press F5 to restore state which was before call.
Is there any PeerConnection to stop the call and stop mic recording ?
Yes, the reason the "red light" is still on is that the media tracks in the mediaStream object (called localstream on that particular page) gathered through getusermedia is still playing/active.
To close a media stream and thus release any hold on the local media inputs simply call localstream.stop() that will end the stream and stop accessing the local media input. This will stop all associated media tracks.
You can also do this by calling stop() on the individual media tracks(grabbed from getVideoTracks or getAudioTracks from the mediaStream).
As for other audio being turned down in other pages/apps. Here is the crbug handling that issue.
Side Note: if the media is being pushed through a peerConnection, then you will probably have to renegotiate the connection due to the mediaStream changing.