ZEGOCLOUD / zego_uikit_prebuilt_call_flutter

MIT License
16 stars 15 forks source link

app got freezed when I call #55

Open heshesh2010 opened 2 months ago

heshesh2010 commented 2 months ago

Hi ,

when I call ZegoUIKitPrebuiltCallInvitationService().init for ZegoUIKitSignalingPlugin I see the app got freezed for 5 seconds or more ,

I call this method every time user logged in in my app

yoer commented 2 months ago

This is an asynchronous operation, please do not await

heshesh2010 commented 2 months ago

This is an asynchronous operation, please do not await

Hello ,

i'm not using await , but still my app got freezed on startup

here is main.dart code

`Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp(
    options: DefaultFirebaseOptions.currentPlatform,
  );
  await setupServiceLocator();
  await Get.putAsync(() => AuthService().init());

  Get.find<AuthService>().initLoginZegoUser();

  await SystemChrome.setPreferredOrientations([
    DeviceOrientation.portraitUp,
  ]);

  /// 1/5: define a navigator key
  final navigatorKey = GlobalKey<NavigatorState>();

  /// 2/5: set navigator key to ZegoUIKitPrebuiltCallInvitationService
  ZegoUIKitPrebuiltCallInvitationService().setNavigatorKey(navigatorKey);

  ZegoUIKit().initLog().then((value) {
    ZegoUIKitPrebuiltCallInvitationService().useSystemCallingUI(
      [ZegoUIKitSignalingPlugin()],
    );

    runApp(RootApp(navigatorKey: navigatorKey));
  });
}`

init login zego user


  void initLoginZegoUser() {
    if (_user.value.id == null) {
      return;
    } else {
      /// 4/5. initialized ZegoUIKitPrebuiltCallInvitationService when account is logged in or re-logged in
      ZegoUIKitPrebuiltCallInvitationService().init(
        appID: xxxx /*input your AppID*/,
        appSign:
            "xxxx" /*input your AppSign*/,
        userID: _user.value.id.toString(),
        userName: _user.value.name ?? "loklok user",
        plugins: [
          ZegoUIKitSignalingPlugin(),
        ],
        notificationConfig: ZegoCallInvitationNotificationConfig(
          androidNotificationConfig: ZegoCallAndroidNotificationConfig(
            showFullScreen: true,
            fullScreenBackground: 'assets/image/call.png',
            channelID: "ZegoUIKit",
            channelName: "Call Notifications",
            sound: "call",
            icon: "call",
            certificateIndex:
                ZegoSignalingPluginMultiCertificate.firstCertificate,
          ),
          iOSNotificationConfig: ZegoCallIOSNotificationConfig(
            systemCallingIconName: 'CallKitIcon',
          ),
        ),
        requireConfig: (ZegoCallInvitationData data) {
          final config = (data.invitees.length > 1)
              ? ZegoCallInvitationType.videoCall == data.type
                  ? ZegoUIKitPrebuiltCallConfig.groupVideoCall()
                  : ZegoUIKitPrebuiltCallConfig.groupVoiceCall()
              : ZegoCallInvitationType.videoCall == data.type
                  ? ZegoUIKitPrebuiltCallConfig.oneOnOneVideoCall()
                  : ZegoUIKitPrebuiltCallConfig.oneOnOneVoiceCall();

          config.avatarBuilder = customAvatarBuilder;

          /// support minimizing, show minimizing button
          config.topMenuBar.isVisible = false;
          // config.topMenuBar.buttons
          //     .insert(0, ZegoCallMenuBarButtonName.minimizingButton);

          return config;
        },
      );
    }
  }