Flutter-webRTC视频通话信令不起作用 [英] Flutter - webRTC Video Call signalling doesn't work

查看:466
本文介绍了Flutter-webRTC视频通话信令不起作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我能够使用agora.io库实现语音和视频通话,该库可从 https:// www获得。 agora.io/ && https://github.com/AgoraIO/Flutter-SDK

I am able to implement voice and video call using agora.io library which is available at https://www.agora.io/ && https://github.com/AgoraIO/Flutter-SDK

无论如何,两个用户都必须手动或自动加入用户定义的特定频道名称。这不是实际的方法。
有没有办法创建一个单独的信号系统(可能正在使用nodejs套接字,firebase或一个信号通知?)

how ever the process for starting a call is both user has to join a particular channel name defined by the user manually or automatically. which is not the practical way. Is there any way to create a separate signalling system (may be using, nodejs socket, firebase or one-signal notification? )

什么是同时/并行旁边使用的方式是什么?
还是完整的替代品?

What's the simultaneous/parallel way to be used along side that? or what's the complete alternative?

推荐答案

Agora.io除了手动传递频道名称外,没有提供其他方法或默认字符串。但是您可以做的是使用Firebase动态链接通过动态链接共享频道名称。此链接会将您重定向到您要输入频道名称的页面,并根据传递的参数填写频道名称。因此,您的代码将类似于:

Agora.io doesn't provide any method other passing a channel name manually or a default string. But what you can do is use Firebase dynamic link to share the channel name via a dynamic link. This link will redirect you to the page where you're taking channel name as input and fill the channel name according to the parameters passed. So your code will look something like:

 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});
  }
}

这篇关于Flutter-webRTC视频通话信令不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆