-
-
Notifications
You must be signed in to change notification settings - Fork 77
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Re-joining a call not working for videoroom plugin #143
Comments
If you are calling hangup your plugin handle will be destroyed you will need to reattach a new plugin which will have brand new peer connection |
Once a participant exited the call, when he joins back again the whole process is started again where the new plugin is attached again. Also the unique id im using currently is already an integer. By calling hangup do you mean using this function: await videoPlugin?.hangup() in the callEnd() function? But then since I go through the same flow again when rejoining the plugin will be reattached to it should not be a problem |
Can you verify whether it is happening with janus official servers? Also verify is it happening on specific device only? |
So far I have only tested on android devices, (Samsung, Realme and Oppo). All of them have the same problem. Ok noted I will check with janus official servers |
Hi, I tried to test with the example from github. I get the same problem. If a user joins, then exits and then try to rejoin again then the other participants will not receive his stream. |
Okay can you share a reproducible code |
It's hard to read, please share as small GitHub repo showcasing just janus specific logic |
Due to certain constraints I cannot share a github repo. If only janus specific logic then the controller code is only that: class VideoConferenceController extends FxController { String memberRole; bool joined = false; List listOfParticipants = []; List listOfLateMinions = []; late StreamRenderer localVideoRenderer; late String turnUsername; late String turnPassword; late IO.Socket socket; String? timer; late int timerValue; final SocketService socketService = SocketService(); VideoRoomPluginStateManager videoState = VideoRoomPluginStateManager(); late Member member; String? filePath; int? sessionId; int? handleId; late FxController waitingLobbyController; String? dealAgreementId; late int newLiveStatus; int numOfParticipant = 0; VideoConferenceController( @OverRide
} Future prepareVideoCallRoom(String memberId) async {
} void initialiseTimer(int roomId, int timerValue) { initialize() async {
} initSocket() async {
} callEnd() async {
} muteOrStopCamera(
} initLocalMediaRenderer() async {
} int generateUniqueId(String userId) {
} joinRoom() async {
} attachPlugin({bool pop = false}) async {
} Future unSubscribeTo(int id) async {
} eventMessagesHandler() async {
} attachSubscriberOnPublisherChange(List? publishers) async {
} subscribeTo(List<List> sources) async {
} @OverRide @OverRide |
I would suggest you track what events you receive from Janus at every step of the way when the user tries to rejoin maybe even use the debugger to see what's going wrong as the code that you gave here is unformatted and it's hard to make sense of it, since your code involves custom logic so point of issue can be anywhere if you can give me basic reproducible example of this issue just having janus code and emulated functionality of your logic it would be great help to test and debug it. because the example code works as expected as you see it |
Closing because of inactivity |
Hi, using an example from the repository I ran into the same problem.
There was only sound
I managed to connect, but when reconnecting, there was no video on the second device or there was a black screen with an error
|
@oleghromanov what platform are you using to run the Google meet example? |
Android, OnePlus phone and emulator |
@oleghromanov can you verify if it works for you? |
Same problem, reconnected on the emulator |
My application is working fine, but if a participant re-joins the same room then its not working as expected. If two participants are in the call and a third one joins the other two will subscribe to the new stream and everything is fine. However, if one participant leaves the call on the janus log in my server this message is displayed: "Publisher 239 not found, not unsubscribing" (239 is a unique ID for each user I provide from the client code). Then if the same user tries to join the same call again the other participants in the call will not be notified to subscribe again to this user, but the new user will subscribe to the other participants' streams without problems. Therefore what happens is that the participant that rejoins the call is able to see and hear the other participants but the existing participants are not aware of him.
The text was updated successfully, but these errors were encountered: