Flutter - webRT C Видеосигнал вызова не работает - PullRequest
0 голосов
/ 29 апреля 2020

Я могу реализовать голосовой и видеозвонок, используя библиотеку agora.io, которая доступна по адресу https://www.agora.io/ && https://github.com/AgoraIO/Flutter-SDK

. для начала вызова пользователь должен присоединиться к определенному имени канала, определенному пользователем вручную или автоматически. что не практично. Есть ли способ создать отдельную систему сигнализации (возможно, с использованием nodejs сокета, пожарной базы или односигнального оповещения?)

Какой параллельный / параллельный способ будет использоваться наряду с этим? или какая полная альтернатива?

1 Ответ

1 голос
/ 02 мая 2020

Agora.io не предоставляет никаких методов, кроме как передать имя канала вручную или строку по умолчанию. Но то, что вы можете сделать, это использовать ссылку Firebase Dynami c, чтобы поделиться именем канала через ссылку Dynami c. Эта ссылка перенаправит вас на страницу, где вы берете имя канала в качестве входного, и заполняет имя канала в соответствии с переданными параметрами. Таким образом, ваш код будет выглядеть примерно так:

 class AgoraImpementation extends State<AgoraImplementation> {

  @override
  void initState() {
    super.initState();
    this.initDynamicLinks();
  }

  initDynamicLinks(BuildContext context) async {
    await Future.delayed(Duration(seconds: 3));
    var data = await FirebaseDynamicLinks.instance.getInitialLink();
    var deepLink = data?.link;
    final queryParams = deepLink.queryParameters;
    if (queryParams.length > 0) {
      var channelName = queryParams['channel_name'];
      openFormScreen(channelName);
    }
    FirebaseDynamicLinks.instance.onLink(onSuccess: (dynamicLink)
    async {
      var deepLink = dynamicLink?.link;
      final queryParams = deepLink.queryParameters;
      if (queryParams.length > 0) {
        var userName = queryParams['channel_name'];
        openFormScreen(channelName);
      }
      debugPrint('DynamicLinks onLink $deepLink');
    }, onError: (e) async {
      debugPrint('DynamicLinks onError $e');
    });
  }

  openFormScreen(String userName){
    Navigator.of(context).pushNamed("routeFormScreen", arguments: {"channelName": channelName});
  }
}
...