Skip to content
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

Android user's camera stops when a web user joins the meeting #86

Open
kietdev123 opened this issue Sep 12, 2024 · 1 comment
Open

Android user's camera stops when a web user joins the meeting #86

kietdev123 opened this issue Sep 12, 2024 · 1 comment

Comments

@kietdev123
Copy link

kietdev123 commented Sep 12, 2024

Description

The camera of the Android user stops (while active) for other users in the meeting when a user joins from the web.

Expected Behavior

The Android user's camera should work normally when a user joins the meeting from the web.

Steps to Reproduce

  • User 1 joins the meeting via iOS app and turns on the camera.
  • User 2 joins the meeting via Android app and turns on the camera. -> Works as expected.
  • User 3 joins the meeting via the web and keeps their camera off. -> User 2's camera stops working, and both User 1 and User 3 cannot see User 2’s camera.

Environment

  • I am hosting my own Jitsi Meet server with custom configurations.
  • jitsi_meet_flutter_sdk: ^10.1.2

Error Logs

I debugged the issue on User1 iOS and found the following logs when User 2’s camera stopped working:

[JitsiMeetSDK] [modules/RTC/TraceablePeerConnection.js] TPC[id=40,type=JVB] setting max height=2160,encodings=[{"active":false,"maxBitrate":200000,"scaleResolutionDownBy":4},{"active":false,"maxBitrate":500000,"scaleResolutionDownBy":2},{"active":false,"maxBitrate":1500000,"scaleResolutionDownBy":1}]
[JitsiMeetSDK] [JitsiConference.js] Failed to resume media transfer over the JVB connection: Error(Error){"message":"Failed to change encodings on the RTCRtpSendersTypeError: e.toJSON is not a function. (In 'e.toJSON()', 'e.toJSON' is undefined)","stack":"/var/containers/Bundle/Application/1ABB03EC-1AD9-4663-ACF0-0F2045C9EEF0/Runner.app/Frameworks/JitsiMeetSDK.framework/main.jsbundle:830:973435\nu@/var/containers/Bundle/Application/1ABB03EC-1AD9-4663-ACF0-0F2045C9EEF0/Runner.app/Frameworks/JitsiMeetSDK.framework/main.jsbundle:90:158\n/var/containers/Bundle/Application/1ABB03EC-1AD9-4663-ACF0-0F2045C9EEF0/Runner.app/Frameworks/JitsiMeetSDK.framework/main.jsbundle:90:870\n/var/containers/Bundle/Application/1ABB03EC-1AD9-4663-ACF0-0F2045C9EEF0/Runner.app/Frameworks/JitsiMeetSDK.framework/main.jsbundle:96:1668\nk@/var/containers/Bundle/Application/1ABB03EC-1AD9-4663-ACF0-0F2045C9EEF0/Runner.app/Frameworks/JitsiMeetSDK.framework/main.jsbundle:96:499\nw@/var/containers/Bundle/Application/1ABB03EC-1AD9-4663-ACF0-0F2045C9EEF0/Runner.app/Frameworks/JitsiMeetSDK.framework/main.jsbundle:96:889\ncallReactNativeMicrotasks@/var/containers/Bundle/Application/1ABB03EC-1AD9-4663-ACF0-0F2045C9EEF0/Runner.app/Frameworks/JitsiMeetSDK.framework/main.jsbundle:96:3059\nvalue@/var/containers/Bundle/Application/1ABB03EC-1AD9-4663-ACF0-0F2045C9EEF0/Runner.app/Frameworks/JitsiMeetSDK.framework/main.jsbundle:42:2875\n/var/containers/Bundle/Application/1ABB03EC-1AD9-4663-ACF0-0F2045C9EEF0/Runner.app/Frameworks/JitsiMeetSDK.framework/main.jsbundle:42:966\nvalue@/var/containers/Bundle/Application/1ABB03EC-1AD9-4663-ACF0-0F2045C9EEF0/Runner.app/Frameworks/JitsiMeetSDK.framework/main.jsbundle:42:2511\nvalue@/var/containers/Bundle/Application/1ABB03EC-1AD9-4663-ACF0-0F2045C9EEF0/Runner.app/Frameworks/JitsiMeetSDK.framework/main.jsbundle:42:924\nvalue@[native code]\nvalue@[native code]"}
[JitsiMeetSDK] [modules/xmpp/strophe.jingle.js] invalid session id: 228507c006c5

Code to Reproduce

final jitsiMeet = JitsiMeet();
        final configOverrides = {
          'startWithAudioMuted': controller.isEnableNoAudio.value,
          'startWithVideoMuted': controller.isEnableCamera.value,
          'subject': 'My Meet',
        };
        // if (!isCreatorOrAdmin) {
        //   configOverrides['buttonsWithNotifyClick'] = ['end-meeting'];
        // }
        final currentUser = Get.find<AppController>().lastLoggedUser!;
        final options = JitsiMeetConferenceOptions(
          serverURL: jitsiUrl,
          room: controller.meetingIdController.text.trim(),
          configOverrides: configOverrides,
          featureFlags: {
		FeatureFlags.addPeopleEnabled: true,
  		FeatureFlags.addPeopleEnabled: true,
                FeatureFlags.welcomePageEnabled: false,
                FeatureFlags.preJoinPageEnabled: false,
                FeatureFlags.unsafeRoomWarningEnabled: false,
                FeatureFlags.resolution: FeatureFlagVideoResolutions.resolution720p,
                FeatureFlags.audioFocusDisabled: true,
                FeatureFlags.audioMuteButtonEnabled: true,
                FeatureFlags.audioOnlyButtonEnabled: true,
                FeatureFlags.calenderEnabled: true,
                FeatureFlags.callIntegrationEnabled: true,
                FeatureFlags.carModeEnabled: true,
                FeatureFlags.closeCaptionsEnabled: true,
                FeatureFlags.conferenceTimerEnabled: true,
                FeatureFlags.chatEnabled: true,
                FeatureFlags.filmstripEnabled: true,
                FeatureFlags.fullScreenEnabled: true,
                FeatureFlags.helpButtonEnabled: true,
                FeatureFlags.inviteEnabled: true,
                // FeatureFlags.androidScreenSharingEnabled:
                //     (Platform.isAndroid) ? true : false,
                FeatureFlags.speakerStatsEnabled: true,
                FeatureFlags.kickOutEnabled: true,
                FeatureFlags.liveStreamingEnabled: true,
                FeatureFlags.lobbyModeEnabled: false,
                FeatureFlags.meetingNameEnabled: true,
                FeatureFlags.meetingPasswordEnabled: true,
                FeatureFlags.notificationEnabled: true,
                FeatureFlags.overflowMenuEnabled: true,
                FeatureFlags.pipEnabled: true,
                FeatureFlags.pipWhileScreenSharingEnabled: true,
                FeatureFlags.preJoinPageHideDisplayName: false,
                FeatureFlags.raiseHandEnabled: true,
                FeatureFlags.reactionsEnabled: true,
                FeatureFlags.recordingEnabled: false,
                FeatureFlags.replaceParticipant: true,
                FeatureFlags.securityOptionEnabled: true,
                FeatureFlags.serverUrlChangeEnabled: true,
                FeatureFlags.settingsEnabled: true,
                FeatureFlags.tileViewEnabled: true,
                FeatureFlags.videoMuteEnabled: true,
                FeatureFlags.videoShareEnabled: true,
                FeatureFlags.toolboxEnabled: true,
                // FeatureFlags.iosRecordingEnabled: false,
                // FeatureFlags.iosScreenSharingEnabled: (Platform.isIOS) ? true : false,
                FeatureFlags.toolboxAlwaysVisible: true,
	  },
          userInfo: JitsiMeetUserInfo(
                  displayName: controller.nameZoom.text,
                  email: currentUser.email ?? currentUser.phone ?? '',
                ),

        );
        jitsiMeet.join(options);

Solutions Attempted

Question

I noticed differences between the config.js files on my server and Jitsi’s default server. Could these differences be causing the issue?
config js server (seft host).txt
config js server jitsi.txt

@saghul
Copy link
Member

saghul commented Sep 19, 2024

Are you able to reproduce this on meet.jit.si? Can you please test the latest 10.2 SDK?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants